2009-08-28 53 views
0

我試圖實現當IoC容器創建偵聽器時,我的偵聽器自動註冊到單例事件聚合器 - 基本上Jeremy D. Miller正在做什麼,但用Castle而不是StructureMap。溫莎城堡:連接到容器的解析和釋放機制

所以我希望能夠「攔截」溫莎的對象創建機制,如果對象支持標記接口(比方說IListener),調用Subscribe方法將EventAggregator(也註冊在容器中)到使新創建的對象成爲事件的訂閱者。此外,在容器釋放對象實例之前,我希望能夠取消訂閱它。

我對溫莎城堡中的什麼機制我應該用來實現這樣的事情有點困惑?我開始看IInterceptor接口,但它似乎攔截了所有調用對象,這不是我真正需要的(並且爲了性能原因而想避免)。

回答

0

你也可以使用在OnCreate這樣的:

container.Register(
     Component.For(typeof (Foo)).OnCreate(
      (k, c) => { 
      // ... 
      eventAggregator.Subscribe(c); 
      // ... 
      }));