0

:我々はDomainEvents implemantationはDIコンテナドメイン層内にDIコンテナを統合する。記事次のドメインのイベント

public static IContainer Container { get; set; } 

、その後

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

は、私は同じアセンブリ内のDIコンテナを統合する必要があり、私は、ドメインオブジェクトを保存したりすることができます使用していることhttp://www.udidahan.com/2009/06/14/domain-events-salvation/ を見ることができます私はContainer.ResolveAll<Handles<T>>()を外部化/抽象化しますか? (私の以前の経験では、すべてDI-relatedのものをglobal.asax.csの中に入れました)。

技術的には私はNinject DIコンテナのみに精通していますが、あなたのアドバイスやイラストが高く評価されているので、コンセプトを理解するでしょう。

ありがとうございます!

答えて

2

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

唯一のキャッチは、イベントハンドラの登録です。そのために私はBootstrapperを使ってIUnityRegistrationのインスタンスを呼び出し、UNITYを設定します。依存関係を減らすためにCommonServiceLocatorを使い始めました。さらに最近では、登録クラスを一掃するためにMEFに切り替えました。

+0

いつも複雑です)ありがとうございます!私は代替案を検討している。多分あなたは1つを提案することができますか?私が必要とするのは、ドメインインタラクションのコンテキストでメッセージを表示することです。 One:「SignalR」について聞いた。 2つ:http://blogs.taiga.nl/martijn/2011/05/03/keep-your-users-informed-with-asp-net-mvc/最後のものの余分なコントローラのロジック..何か提案がありますか? – lexeme

+0

SignalRは素晴らしいですが、イベントを処理して送信するためのコードを書く必要があります。 – bloudraak

関連する問題