【发布时间】:2011-12-14 05:18:59
【问题描述】:
我一直在寻找一些关于如何最好地使用 Castle Windsor 3 和 AOP 的简单示例,但通过属性而不是在每个组件定义中添加拦截器。
那么有没有一种简单的方法来获取具有如下属性的方法:
public class SomeClass
{
[Log]
public virtual void DoSomething() {...}
}
像这样调用拦截器:
public class SomeInterceptor : IInterceptor
{
//... add the logger and write out method start, exception, finished info
}
无需针对实际的 SomeClass 配置指定拦截器,如下所示:
someContainer.Register(Component.For<SomeClass>().ImplementedBy<SomeClass>()).Interceptors<SomeInterceptor>();
在我使用过的大多数其他 DI 框架中,您可以通过被调用方法的规则或通过定位属性来设置 AOP。所以希望这能让你知道我在追求什么。
【问题讨论】:
标签: c# castle-windsor aop