在我正在开发的应用程序中,我们使用 Castle Windsor 的一些 AOP 工具,主要用于记录方法进入/退出点和时间,以进行调试/性能分析。这很好用,除了因为我们在整个容器中使用默认拦截器,它适用于所有内容,包括 Logging 类,因此日志最终会被解释它如何进入和退出日志写入方法的消息堵塞。
在其他类上,我可以使用自定义 IInterceptorSelector 以及Intercept
类上的属性来覆盖默认值,但是查看 Castle 文档我看不到任何等效DoNotIntercept
类型的属性。我为我的日志记录类创建了一个 NullInterceptorSelector,它返回一个空列表,但这似乎是一种疯狂的解决方法,我相信必须有更好的方法来做到这一点 - 任何人都可以建议如何?
编辑:拦截器列表也是累积的,所以我的 NullInterceptorSelector 实际上不起作用。