您是否认为始终使受保护的类成员成为自动实现的受保护属性以保持隔离或使其受保护的字段就足够了?
protected bool test { get; set; }
Run Code Online (Sandbox Code Playgroud)
要么
protected bool test;
Run Code Online (Sandbox Code Playgroud) 为了生成客户端库,我将在构建时获取 Quarkus 生成的 openapi yml 文件。
目前,我发现获取它的唯一方法是运行服务器并从 /q/openapi 端点获取它,但在这个过程中必须运行服务器才能获得 spec yml 文件,这有点过分了。
该文件将用作输入,以使用 CI 中的生成器生成客户端库。
我想生成一个数据库脚本,而没有声明实际的数据库连接字符串.
为了做到这一点,我现在使用NHibernate ExportSchema基于用Fluent NHibernate生成的NHibernate配置(在我的ISessionFactory创建方法期间):
FluentConfiguration configuration = Fluently.Configure();
//Mapping conf ...
configuration.Database(fluentDatabaseProvider);
this.nhibernateConfiguration = configuration.BuildConfiguration();
returnSF = configuration.BuildSessionFactory();
//Later
new SchemaExport(this.nhibernateConfiguration)
.SetOutputFile(filePath)
.Execute(false, false, false);
Run Code Online (Sandbox Code Playgroud)
fluentDatabaseProvider是一个FluentNHibernate IPersistenceConfigurer,需要获取正确的sql方言来创建数据库.
使用现有数据库创建工厂时,一切正常.但我想要做的是在选定的数据库引擎上创建一个NHibernate配置对象,而不需要在场景后面有真正的数据库...而且我无法做到这一点.
如果有人有一些想法.
有人知道关于在抽象类或父类中公共属性后面定义属性可见性(私有或受保护)的方式的C#最佳实践.
在其他世界中,默认情况下(以及为什么)之间的最佳实践是:
public abstract class MyClass
{
private string myAttribute;
public string MyAttribute
{
get { return myAttribute; }
set { myAttribute = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
和
public abstract class MyClass
{
protected string myAttribute;
public string MyAttribute
{
get { return myAttribute; }
set { myAttribute = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
我认为子类应该有办法直接处理这个受保护的属性,但如果getter或setter包含更多的代码,它可能不是一个好习惯...
你觉得怎么样?
谢谢.