ウィンザー城:コンテナの解決および解除機構をフックします
-
20-09-2019 - |
質問
私はリスナーがのIoCコンテナによって作成されたときにシングルトンイベントアグリゲータに私のリスナーのの自動登録を実装しようとしている - 基本的にはジェレミー・D. Miller氏は、しかし、城の代わりのStructureMapとやっていることます。
だから私は、「インターセプト」ウィンザーのオブジェクト作成メカニズムにできるようにしたいと、オブジェクトが(のはIListener
を言わせて)マーカーインターフェイスをサポートしている場合、作るために(また、コンテナに登録されている)Subscribe
にEventAggregator
メソッドを呼び出します新しく作成されたオブジェクトのイベントに加入。オブジェクトのインスタンスは、コンテナによって解放される前にも、私はそれを解除することができるようにしたい。
私はこのような何かを達成するために使用する必要があるウィンザー城で何のメカニズムについて少し困惑していますか?私はIInterceptor
インターフェースを見て始めたが、すべては、私が本当に必要な(とパフォーマンス上の理由から避けたい)ものではありませんオブジェクトへの呼び出しをインターセプトするようです。
解決
IKernel
あなたはそれを構築するために使用することができますComponentCreated
とComponentDestroyed
のような。 多くのサンプルがウェブ上にあります。
そうでなければ、あなただけのイベント配線施設を使用することができますが、それがベースの規則ではありません。
他のヒント
また、このようにOnCreate関数を使用できます:
container.Register(
Component.For(typeof (Foo)).OnCreate(
(k, c) => {
// ...
eventAggregator.Subscribe(c);
// ...
}));
所属していません StackOverflow