我创建了一个从该类继承的Registry
类。在这个类中,我想注入一个属性:
ForConcreteType<Person>()
.Configure
.Setter(s => s.PersonSpecializationManager)
.Is(t => t.GetInstance<IPersonSpecializationManager>());
属性定义如下:
/// <summary>
/// Gets or sets the person specialization manager
/// </summary>
public virtual IPersonSpecializationManager PersonSpecializationManager
{
get
{
return _personSpecializationManager;
}
set
{
_personSpecializationManager = value;
}
}
我不能使用构造函数注入,因为它Person
是由 NHibernate 创建的。而且由于 NHibernate 需要一个空的构造函数,我不得不这样做。我知道我可以引入另一个处理这些_personSpecializationManager
东西的类,但我不能这样做。
上述继承自该类的Registry
类是在 StructureMap 中配置的。当我在 line 放置断点时ForConcreteType<Person>() ...
,断点被命中。所以我知道它应该由 StructureMap 处理。
所以,我的问题是,为什么 StructureMap 注入不是我的财产?