0

記事に続いて:httpDomainEvents : //www.udidahan.com/2009/06/14/domain-events-salvation/実装がDIコンテナを使用し ていることがわかります

public static IContainer Container { get; set; }

その後

if(Container != null) {
    foreach(var handler in Container.ResolveAll<Handles<T>>()) handler.Handle(args);
}

ドメインオブジェクトを格納するのと同じアセンブリ内にDIコンテナを統合する必要がありますか、それとも外部化/抽象化できますContainer.ResolveAll<Handles<T>>()か?(以前の経験では、すべてのDI-relatedものを中に入れましglobal.asax.csた)。

技術的にはNinjectDIコンテナにしか精通していませんが、おそらく概念を理解しているので、アドバイスやイラストをいただければ幸いです。

ありがとう!

4

1 に答える 1

2

いいえ、必要ありません。DomainEvents とそのメソッドを非静的にし、コンテナーを使用して作成します。まともなコンテナーは、ハンドルとその依存関係を作成して初期化し、コンテナーへの参照なしでイベント ハンドラーを呼び出すことができます。

唯一の問題は、イベント ハンドラーの登録です。そのために、Bootstrapperを使用して IUnityRegistration のインスタンスを呼び出し、UNITY を構成します。依存関係を減らすためにCommonServiceLocatorを使い始めました。さらに最近では、登録クラスをまとめて削除するために MEF に切り替えました。

于 2012-05-04T09:40:55.450 に答える