程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> AspectNet功能介紹(二)

AspectNet功能介紹(二)

編輯:關於ASP.NET

AspectNet是一個基於.Net Framework的方面編制器,它同時能實現靜態編織和動態編織,是bobmazelin個人的研究性項目,現仍然處於開發階段,有關AOP概念的介紹請參考:www.aspectJ.org以及IBM的專題.

在上一篇中我介紹了AspectNet的基本結構,從這篇開始我會具體介紹AspectNet在靜態編織方面的功能.這次我給大家介紹call和execution兩個pointcut.

在上篇中我提過pointcut捕獲了需要織入的代碼點,在AspectNet中存在著多種捕獲這種代碼點的方式,call和execution是其中比較基礎的兩種.

1.call pointcut: 捕獲了調用某些方法的代碼點;

2.execution pointcut:捕獲了執行某些方法的代碼點.

它們非常相似,我在下文會通過一個小例子來展示它們之間的區別.

在給出例子之前,我先說明一下它們的方法模式:

修飾符 返回值類型 [方法類型.]方法名稱(參數類型列表)

1.修飾符是public, protected,private,sealed,static等,它們支持!以及並操作(比如: !private static);

2.返回值類型就是方法的返回值類型,它支持void,*, &&, ||, !,+操作符.void就是沒有返回值;*是通配符,單獨的*代表任意類型,也可以部分通配,比如:System.*,Customer*.Order*等等;&&, ||, !可以組合不同的類型;+是子類操作符,代表包括其所有子類,比如:System.Object+,就代表了所有的類;

3.方法類型描述了方法聲明了類型,它和返回值類型的模式類似;注:在AspectNet中它不能被忽略;

4.方法名稱只支持*和new操作符,new代表類的構造函數;

5.參數類型列表:通過,來分割參數類型,它支持..操作符來表示任意多了參數,比如:System.Int,..,string就表述方法的第一個參數和最後一個參數的類型,中間不限制參數的個數和類型.

注:上面對AspectNet的方法模式的描述並不全面.

理論講完了,來點實際的,由於還沒有到參數的傳遞階段,我選擇了最為簡單的log為實例,等到介紹參數時再給出業務相對復雜的例子,這個例子主要說明兩個問題,第一: 通過+來捕獲子類代碼點;第二,call和execution的區別.

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