ok,我們攔截器基本構造完成,接下來我來告訴大家如何去使用。
注意一個問題,object攔截器我們要攔截什麼,那麼我們就要在需要攔截的類上面做手腳了。
首先,創建我們需要被攔截的類。
然後,我們再對類進行相應的包裝:
1、該類要標記InterceptAttribute屬性
2、該類要繼承ContextBoundObject,只有繼承ContextBoundObject的類,vs才能知道該類需要訪問Context,這樣標記的InterceptAttribute才有效。
////// If you want to add the interceptpool on this class , the class need to do: /// 1、inherited form ContextBoundObject. /// 2、mark the InterceptAttribute. /// [Intercept] public class SimonDemo:ContextBoundObject { public SimonDemo() { Console.WriteLine(" Call 'SimonDemo' - 'Constructor' "); } public void Operate1() { Console.WriteLine("Call 'SimonDemo' - 'Operate1' "); } }
class Program { static void Main(string[] args) { Console.WriteLine("Call Main .."); SimonDemo simon = new SimonDemo(); simon.Operate1(); Console.WriteLine("exit Main .."); Console.Read(); } }
接下來是運行結果:<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20140729/20140729092457304.jpg" alt="">
這樣可以看出我的程序攔截,並輸出了調用函數的名字。
在此僅提供一種方法,其余的使用方法有待研究。
寫到這裡我的攔截器實現完了,小弟了解尚淺,如有錯誤請高手們留言指出。