城堡拦截器:如何将拦截器添加到所有已注册类型?
|
我正在一对一地注册几种类型:
container.Register(
Component.For<IService1>().ImplementedBy<ServiceImpl1>(),
Component.For<IService2>().ImplementedBy<ServiceImpl2>(),
Component.For<IService3>().ImplementedBy<ServiceImpl3>(),
Component.For<IService4>().ImplementedBy<ServiceImpl4>()
);
有没有一种方法可以为已注册的所有此类程序集注册拦截器?我不想像AllTypes
那样按惯例注册所有类型。我只想添加一个拦截器而无需编写
.Interceptors(InterceptorReference.ForType<DummyInterceptor>())
.SelectedWith(new FooInterceptorSelector()).Anywhere
成千上万次。
谢谢!
没有找到相关结果
已邀请:
2 个回复
播匣扦阔食
澳绍能
基本上相当于
也就是说,将
与
相关联与注册将使用
选择的拦截器无关。此外,每个“ 7”只能有一个拦截器选择器。 由于这种分离,使用两个独立的贡献者可以最好地解决该问题-一个用于注册拦截器,另一个用于注册拦截器选择器。 第一个与Dan的答案基本相同。但是,没有必要为拦截器添加“ 10”,因为拦截器应该已经使用类似以下方式在容器中注册了
所以看起来可能像
或者如果您希望能够一次性注册多个拦截器,则可以利用
的现有实现,而改为:
要注册“ 6”,可以通过执行“ 16”来实现贡献者:
或直接使用
: