2

大家好記錄使用策略注入應用程序塊

我想問一下,如何使用策略注入應用程序塊登錄在這些情況下,方法的進入和退出:

案例1:在的情況下,記錄Web表單控件的事件處理程序,您知道類可以說_Default必須從類繼承System.Web.UI.Page,所以我們不能繼承我們的類MarshalByRefObject類,因此日誌記錄將無法工作。

案例2:的情況下,我們有一個靜態類,我們必須記錄中的方法,我們能做些什麼,從MarshalByRefObject的 CALSS繼承這個類,爲了得到記錄的作品。

回答

1

像他們有一些愚蠢的要求,才能申請記錄這聽起來我... 這可能是一個offtopic,但你可能想看看Spring.AOP框架應用記錄到你的對象,而不需要從MarshalByRefObject繼承。 (在多重繼承 - 截斷語言中,這是一個惱人的和激烈的要求,我認爲)。

1

關於情況1,策略注入塊能夠對您擁有接口的對象起作用。在Visual Studio中使用Refactor-> Extract Interface操作很容易,如果您沒有考慮使用接口。

0

關於案例2,您的「靜態」類實際上不是一個靜態類。它可以從MarshalByRefObject繼承或實現您指定的接口。然後它可以擁有一個私有構造函數和一個你策略注入的單例實例。所有的靜態方法都會在類的單例實例上調用相應的(策略注入的)實例方法。