在Castle中注册组件之后注册拦截器
本文关键字:注册 之后 组件 Castle | 更新日期: 2023-09-27 18:16:20
我有一个工具,它需要注册一个拦截器,然后注册这个拦截器已经在容器Castle内核中注册的组件的子集。
设施位于一个单独的集合中,它意味着从不同的角度使用程序集,所以我不能将拦截器注册与组件注册耦合使用此功能的每个程序集。
这是可能的吗?如何实现此功能?
通常我使用设施的方式是这样的:
// 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
。
这样,它可以对组件完全透明,并在组件和设施之间施加显式耦合(除非你想要)。