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。希望这能给你们一些启示

Castle Windsor 3 AOP Via Attributes

你想要添加一个ComponentModel构造贡献者,它将在组件注册时检查组件,并为那些需要它的组件添加拦截器。