NHibernate 2.1 がエンティティのコンストラクタ依存性注入をサポートしていることをどこかで読んだことがあります。
これを起動して実行するには、StructureMap と NHibnerate 2.1 を構成するにはどうすればよいですか?
NHibernate 2.1 がエンティティのコンストラクタ依存性注入をサポートしていることをどこかで読んだことがあります。
これを起動して実行するには、StructureMap と NHibnerate 2.1 を構成するにはどうすればよいですか?
これは古い質問だと思いますが、役立つ場合があります。
編集: 元の投稿されたリンクは NHib 2.1 では有効ではありませんでした。より良い情報が見つかりました。
NHibernate 2.1 では、Interceptor を作成して Instantiate メソッドをオーバーライドし、コンテナーにインスタンスを作成させることができます。 ここに例があります
代わりにプロパティ インジェクションを行いたい場合は、同じ手法を使用できますが、代わりに onLoad メソッドで作業を行います。
すべてのエンティティ (クラスなど) にわたって StructureMap を設定し、それらのそれぞれのインターフェイスをクラスのコンストラクターのシグネチャとして使用することにより、コンストラクターに依存関係を持つクラスをインスタンス化すると、StructureMap が自動注入されます。それはあなたのためです!
[PluginFamily("Default")]
public interface IWidget1
[Pluggable("Default")]
public class Widget1 : IWidget1
[PluginFamily("Default")]
public interface IAnotherWidget
[Pluggable("Default")]
public class AnotherWidget : IAnotherWidget
{
public AnotherWidget(IWidget widget)
{
...
}
}
IAnotherWidget _anotherWidget = ObjectFactory.GetInstance<IAnotherWidget>();
そんな感じ!
これも役に立つかもしれません: NHibernate の Activator.CreateInstance() への呼び出しを置き換えることはできますか?