我正在使用NHibernate + Castle.Windsor向我的实体添加一些行为。这意味着NHibernate通过Windsor创建实体。这意味着我必须有一个默认的空构造函数,因此Windsor将能够实例化我的实体。我不喜欢这个有很多原因,主要原因是我不喜欢物体处于不稳定的状态。
有没有办法可以在没有公共无参数构造函数的情况下实例化实体?
更多信息:我尝试为我的实体使用自定义Activator,但这不起作用,因为Windsor在检测到无法解决依赖关系时抛出异常,因此在使用我的激活器之前它会爆炸。
一些代码:
public class Product
{
public string Name { get; set; }
public Product(string name)
{
Name = name;
}
protected Product() { }
}
假设我有上面的实体:如果我尝试通过Windsor解析该实体,它会抛出一个异常,告诉我Product正在等待一些未注册的依赖项。如果我单独使用NHibernate,一切正常。所以,基本上我是在尝试通过Windsor解析我的实体时在那个场景中模仿NHibernate行为。
提前致谢,
Jorge Vargas。