Регистрация перехватчиков после регистрации компонентов в замке

У меня есть средство, которое должно зарегистрировать перехватчик, а затем зарегистрировать этот перехватчик для подмножества компонентов, уже зарегистрированных в контейнере Castle Kernel.

Средство находится в отдельной сборке, и оно предназначено для использования из разных сборок, поэтому я не могу связать регистрацию перехватчика с регистрацией компонентов каждой сборки, которая использует это средство.

Можно ли сделать это? Как я могу достичь этой функциональности?

1 ответ

Решение

Обычно способ, которым я пользуюсь, выглядит следующим образом:

// 1. create the container
var container = new WindsorContainer();

// 2. add all the facilities I need
container.AddFacility<SomeFacility>();
contianer.AddFacility<SomeOtherFacility>();

// 3. install all the components
container.Install(FromAssembly.This());

Средства обычно либо подписываются на события контейнера, регистрируют некоторые из своих собственных компонентов, либо добавляют ComponentModel строительные участники, которые изучают и дополняют ComponentModel компонентов, подлежащих регистрации.

Таким образом, он может быть полностью прозрачным для компонентов и налагать явную связь между компонентами и оборудованием (если вы этого не хотите).

Другие вопросы по тегам