我有一个设施,需要注册拦截器,然后根据已经在容器城堡内核中注册的组件的子集注册此拦截器。

该设施生活在一个单独的组件中,该设施应从不同的组件中使用,因此我不能将拦截器注册与使用此设施的每个组件的组件注册相结合。

是否有可能做到这一点?如何实现此功能?

有帮助吗?

解决方案

通常,我使用设施的方式就是这样:

// 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 正在注册的组件。

这样,它可以完全透明组件,并强加于组件和设施之间的显式耦合(除非您需要)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top