C# 温莎城堡3 AOP通过属性

C# 温莎城堡3 AOP通过属性,c#,castle-windsor,aop,C#,Castle Windsor,Aop,我一直在寻找一些简单的例子,说明如何最好地使用Castle Windsor 3和AOP,但不是通过在每个组件定义中添加拦截器,而是通过属性 那么,有没有一种简单的方法可以获得具有如下属性的方法: public class SomeClass { [Log] public virtual void DoSomething() {...} } 要通过这样的拦截器进行调用: public class SomeInterceptor : IInterceptor { //... ad

我一直在寻找一些简单的例子,说明如何最好地使用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>();
someContainer.Register(Component.For().ImplementedBy()).Interceptors();
在我使用过的大多数其他DI框架中,您可以通过所调用方法的规则或目标属性来设置AOP。因此,希望这能为您提供一些我想要了解的信息。

您希望添加一个在组件注册时检查组件并将拦截器添加到需要拦截器的组件中