什么是AOP?引用百度百科:AOP為Aspect Oriented Programming的縮寫,意為:面向切面編程,通過預(yù)編譯方式和運行期動態(tài)代理實現(xiàn)程序功能的統(tǒng)一維護的一種技術(shù)。實現(xiàn)AOP主要由兩種方式,一種是編譯時靜態(tài)植入,優(yōu)點是效率高,缺點是缺乏靈活性,.net下postsharp為代表者(這個是收費的)。另一種方式是動態(tài)代理,優(yōu)缺點與前者相反,動態(tài)為目標(biāo)類型創(chuàng)建代理,通過代理調(diào)用實現(xiàn)攔截。AOP能做什么,常見的用例是事務(wù)處理、日志記錄等等。下面就講講Autofac怎么實現(xiàn)AOP,Autofac是一個.net下非常優(yōu)秀,性能非常好的IOC容器(.net下效率最高的容器),加上AOP簡直是如虎添翼。Autofac的AOP是通過Castle(也是一個容器)項目的核心部分實現(xiàn)的,名為Autofac.Extras.DynamicProxy,顧名思義,其實現(xiàn)方式為動態(tài)代理。

  使用前的準(zhǔn)備:

    通過Nuge安裝程序包 :Autofac、Autofac.Extras.DynamicProxy,安裝成功之后會增加三個引用

    Android培訓(xùn),安卓培訓(xùn),手機開發(fā)培訓(xùn),移動開發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

  下面正式開始了!

 

  第一步:創(chuàng)建攔截器

  下面是一個簡單的攔截器示例,該攔截器的功能是顯示被攔截的方法名稱、參數(shù)列表和返回結(jié)果

  

Android培訓(xùn),安卓培訓(xùn),手機開發(fā)培訓(xùn),移動開發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

 1  /// <summary> 2     /// 攔截器 需要實現(xiàn) IInterceptor接口 Intercept方法 3     /// </summary> 4     public class CallLogger: IInterceptor 5     { 6         TextWriter _output; 7  8         public CallLogger(TextWriter output) 9         {10             _output = output;11