C#製作一個訊息攔截器(intercept)4

來源:互聯網
上載者:User

標籤: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();        }    }

這樣,通過調試,我們就可以看出攔截器都攔截出了什麼


接下來是運行結果:


這樣可以看出我的程式攔截,並輸出了調用函數的名字。

在此僅提供一種方法,其餘的使用方法有待研究。

寫到這裡我的攔截器實現完了,小弟瞭解尚淺,如有錯誤請高手們留言指出。


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.