Castle Windsor 3 AOP Via Attributes
本文关键字:Via Attributes AOP Windsor Castle | 更新日期: 2023-09-27 18:17:48
我一直在寻找一些简单的例子,说明如何最好地使用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。希望这能给你们一些启示
你想要添加一个ComponentModel构造贡献者,它将在组件注册时检查组件,并为那些需要它的组件添加拦截器。