Castle.Windsor每个类的多个拦截器

时间:2012-05-23 15:31:18

标签: c# .net-3.5 castle-windsor

Documentation说我可以为每个类应用多个Interceptor属性。不过我收到语法错误重复属性。另外this帖子建议我可以将拦截器应用于方法,但我不能!我的测试只有在我将它们应用到类中时才会通过,如果我希望拦截器仅针对某些方法执行,那么这也很烦人。

[Interceptor (typeof (CastleWindsorAspect))]
[Interceptor (typeof (AnotherCastleWindsorAspect))]
public class CastleWindsorDomainType { }

1 个答案:

答案 0 :(得分:1)

您确实可以将多个拦截器应用于组件。您可以使用流畅的注册API并使用XML配置来完成它。

你也应该能够通过自定义属性来实现,就像你演示的那样,但是看起来Windsor中有一个错误,它不允许你多次指定它(因此你看到的错误)。我建议将此报告为错误,并在此期间使用注册API附加多个感受器。

至于将拦截器应用于方法,您可以这样做,但不能以声明方式。相反,您需要指定IProxyGenerationHookIInterceptorsSelector来控制应该代理哪些方法和/或哪些拦截器应该应用于哪些代理方法。