代码之家  ›  专栏  ›  技术社区  ›  Igor Brejc

温莎城堡:连接集装箱的分解和释放机构

  •  0
  • Igor Brejc  · 技术社区  · 15 年前

    我正在努力实现 当侦听器由IOC容器创建时,将侦听器自动注册到单例事件聚合器 -基本上,杰里米·D·米勒在做什么,但用城堡而不是建筑地图。

    所以我想能够“拦截”温莎的对象创建机制,如果对象支持标记接口(比如 IListener ),调用 Subscribe 方法到 EventAggregator (也在容器中注册)使新创建的对象成为事件的订户。另外,在容器释放对象实例之前,我希望能够取消订阅它。

    我有点困惑,温莎城堡里我应该用什么机制来实现这样的目标?我开始看 IInterceptor 接口,但似乎被截获了 全部的 调用对象,这不是我真正需要的(出于性能原因,我希望避免)。

    2 回复  |  直到 13 年前
        1
  •  1
  •   Mauricio Scheffer    15 年前

    IKernel exposes various events 喜欢 ComponentCreated ComponentDestroyed 你可以用它来建造它。有 many samples 在网上。

    否则,您只需使用 event wiring facility 但它不是基于约定的。

        2
  •  0
  •   Gregor Slavec    13 年前

    您也可以这样使用oncreate:

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