2011-12-13 45 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。所以希望能給你一些關於我所追求的信息。

回答