2011-04-28 203 views
2

我非常有興趣瞭解它是否可能截取屬性以及方法?我發現一個很好的例子,似乎支持攔截方法,也可以攔截屬性和事件呢?統一:攔截(AOP)攔截屬性?並在表單上截取方法(winform)?

我想爲我的應用程序編寫一個AOP日誌記錄系統。

這裏是例子:http://codetheorist.com/2011/04/interception-made-easy/

我給它一個嘗試,設法得到它在一個類庫工作,

如果我想獲得它的的WinForms工作?我還需要從容器中解析表單,現實中的表單是一個類,但是我無法使用它。

任何人有任何想法,或已經做到了嗎?

我的確注意到Aurum是Unity上的框架,但我認爲如果可能的話我更願意使用Unity擴展。

編輯

這就是我想爲我的WinForms ....但它沒有工作,其在Program.cs中

var form = UnityContainer.Container.Resolve<frmMain>(); 

///Application.Run(new frmMain()); // OLD 

Application.Run(form); // new using the resolved from unity.. It resolves it and i registered it ... 

回答

2

的屬性只是一些方法額外的元數據,所以如果屬性是虛擬的或者是接口的一部分,它可以被截取 - 就像任何其他虛擬方法一樣。

+0

好吧,是與setters和getters,所以假設該方法不需要適應捕獲屬性...其他元數據?我需要檢查這個嗎? – Martin 2011-04-28 14:41:00

+2

實際上,由於System.Windows.Forms.Form繼承自MarshalByRefObject,因此如果使用TransparentProxyInterceptor,則可以攔截任何內容,但不僅限於虛擬或接口方法。 – 2011-04-29 08:54:25