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