5

NHibernate 2.1 がエンティティのコンストラクタ依存性注入をサポートしていることをどこかで読んだことがあります。

これを起動して実行するには、StructureMap と NHibnerate 2.1 を構成するにはどうすればよいですか?

4

2 に答える 2

2

これは古い質問だと思いますが、役立つ場合があります。

編集: 元の投稿されたリンクは NHib 2.1 では有効ではありませんでした。より良い情報が見つかりました。

NHibernate 2.1 では、Interceptor を作成して Instantiate メソッドをオーバーライドし、コンテナーにインスタンスを作成させることができます。 ここに例があります

代わりにプロパティ インジェクションを行いたい場合は、同じ手法を使用できますが、代わりに onLoad メソッドで作業を行います。

于 2010-06-15T18:54:56.980 に答える
0

すべてのエンティティ (クラスなど) にわたって 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() への呼び出しを置き換えることはできますか?

そしてこれ: http://devlicio.us/blogs/billy_mccafferty/archive/2007/02/05/inject-di-container-into-domain-objects-with-nhibernate.aspx

于 2009-07-24T09:51:20.870 に答える