程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 我心中的核心組件(可插拔的AOP)~第四回 異常攔截器

我心中的核心組件(可插拔的AOP)~第四回 異常攔截器

編輯:C#入門知識

回到目錄

之前說過有關攔截器的文章,第二回  緩存攔截器,事實上,在那講裡說的最多是AOP和緩存組件,對於攔截的概念並沒有詳細的說明,這一講,不說AOP,主要說一下攔截器,攔截器Interception,主要是在方法執行前或者執行後,動態添加一些行為,而這個行為主要包含緩存,日志,異常處理及你可以想到的所有的一切,呵呵。

這一講是異常攔截器,它的主要意義在於,當你的一個方法被執行時,你可以通過配置文件去管理這個方法執行前與執行後是否附加統一異常處理行為。

攔截器組件我們還是用Unity.InterceptionExtension,它依附於Unity,當你沒有安裝Unity時,Unity.InterceptionExtension在安裝時會自己幫你添加上,這是正確的,呵呵。

對於我們所開發的攔截器,必須要實現IInterceptionBehavior這個接口才可以,這是接口的內容

View Code

其中Invoke方法就是攔截方法之前要執行的方法,當進行目標方法時,首先會檢測是否在此方法的信息,如果有,就進行攔截行為,本例為異常攔截行為。

異常攔截器代碼:

   
     
      IInterceptionBehavior Members
         
         
         
         IEnumerable<Type> 
         
         
         
         
         methodReturn = (methodReturn.Exception !=  
         
          {  

而要想使攔截器起作用,我們可以在配置文件中進行配置,下面是緩存攔截與異常攔截的配置代碼,它們隸屬於Unity節點

  <!--BEGIN: Unity-->
  <unity xmlns=>
    <sectionExtension type= />
    <container>
      <extension type= />
      <register type= mapTo= />
      <!--對數據上下文的注入-->
      <register type= mapTo= />
      <!--對WCF的訪問進行的注入與緩存和異常的攔截-->
      <register type= mapTo=>
        <!--  <interceptor type= />-->
        <interceptor type= />
        <interceptionBehavior type= />
        <interceptionBehavior type= />
      </register>
    </container>
  </unity>
  <!--END: Unity-->

怎麼樣,大家是否對攔截器有一個很清楚的了解和認識了呢,呵呵!

回到目錄

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved