2011-01-26 95 views
1

我使用Autofac與DynamicProxy2攔截這樣AOP與Autofac和DynamicProxy2

builder.RegisterType<Calculator>().As<ICalculator>().EnableInterfaceInterceptors() 
       .InterceptedBy(typeof (CallLogger)); 

這是我的班會攔截給定接口上的所有方法。

有沒有什麼方法可以截取接口的特定方法?

+0

你需要爲此使用'IProxyGenerationHook`。不知道Autofac在API中是否有....鉤子。 – 2011-01-26 22:20:37

回答

2

有幾種方法我可以考慮,而且可能還有更多。

您可以創建一個自定義屬性,如[LogCall][DoNotLogCall](選擇加入或退出)並將其應用於攔截方法,然後檢查CallLogger中是否存在屬性。

或者,您可以用CallLogger配置應該記錄的方法的名稱(或規則來查找)。