Я пытаюсь реализовать автоматическую регистрацию моих слушателей в одноагрегатном агрегаторе событий, когда слушатели создаются контейнером IoC - в основном то, что делает Джереми Миллер, но с Castle вместо StructureMap.
Итак, я хочу иметь возможность «перехватывать» механизм создания объекта Виндзора и, если объект поддерживает интерфейс маркера (скажем, IListener
), вызывать метод Subscribe
для EventAggregator
(который также зарегистрирован в контейнере), чтобы сделать вновь созданный объект подписчиком на события. Кроме того, до того, как экземпляр объекта был освобожден контейнером, я хочу иметь возможность отменить его подписку.
Я немного озадачен тем, какой механизм в Виндзорском замке я должен использовать для достижения чего-то подобного? Я начал изучать интерфейс IInterceptor
, но он, кажется, перехватывает все вызовы объекта, а это не то, что мне действительно нужно (и я хочу избежать по соображениям производительности).