2011-12-13 55 views
1

我一直在寻找一些简单的例子,说明如何最好地使用Castle Windsor 3和AOP,但是通过属性而不是在每个组件定义中添加拦截器。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。所以希望能给你一些关于我所追求的信息。

回答