由于某种原因,我不想让用户创建对象的实例,而不是向构造函数发送属性 但据我所知,该对象应具有默认构造函数,因此可以创建一个不发送requierd属性的实例。 有什么方法可以防止这个问题吗?若是,是否有任何副作用?
答案 0 :(得分:6)
只需使用受保护的默认构造函数:
public class Product
{
protected Product() { }
public Product(Category category)
{
this.Category = category;
}
}
答案 1 :(得分:5)
“NHibernate允许使用Value Objects的私有默认构造函数,但对于Entities,您需要一个默认的public或protected构造函数,因为private是不够的。”
在这里你可以找到一些东西:
这里有一个没有构造函数的实验:
http://kozmic.net/2011/03/20/working-with-nhibernate-without-default-constructors/
这是一个使用依赖注入的示例:
http://nhibernate.info/blog/2008/12/12/entities-behavior-injection.html