クラスから継承するクラスを作成しました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で構成されます。行ForConcreteType<Person>() ...
にブレークポイントを設定すると、ブレークポイントがヒットします。だから私はそれがStructureMapによって処理されるべきであることを知っています。
だから、私の質問は、StructureMapインジェクションが私のプロパティではないのはなぜですか?