精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網(wǎng)站建設(shè)資訊

NEWS

網(wǎng)站建設(shè)資訊

AOP之PostSharp初見(jiàn)-OnExceptionAspect-創(chuàng)新互聯(lián)

PostSharp 這個(gè)靜態(tài)植入的aop框架我就不多說(shuō)了,在以前的aop文件,我們也嘗試用MSBuild+Mono.Cicel理解靜態(tài)植入AOP的原理。最近公司準(zhǔn)備購(gòu)買Postsharp做一些AOP,減少開(kāi)發(fā)是代碼量,至于選擇AOP相信也不用多說(shuō)。我也在今天重新了解了些Postsharp最新版更新,這陣子的博客更新也少了,所以準(zhǔn)備在MSBuild+Mono.Cicel的基礎(chǔ)上再一些Postsharp系列。今天既然是初見(jiàn),那么我們就從最簡(jiǎn)單的OnExceptionAspect開(kāi)始。

創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營(yíng)銷,包括網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、SEO優(yōu)化、網(wǎng)絡(luò)推廣、整站優(yōu)化營(yíng)銷策劃推廣、電子商務(wù)、移動(dòng)互聯(lián)網(wǎng)營(yíng)銷等。創(chuàng)新互聯(lián)為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制及解決方案,創(chuàng)新互聯(lián)核心團(tuán)隊(duì)十載專注互聯(lián)網(wǎng)開(kāi)發(fā),積累了豐富的網(wǎng)站經(jīng)驗(yàn),為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設(shè)服務(wù),在網(wǎng)站建設(shè)行業(yè)內(nèi)樹(shù)立了良好口碑。

一:OnExceptionAspect

起定義如下:

AOP之PostSharp初見(jiàn)-OnExceptionAspect

先寫(xiě)Aspect Attribute:

  1. View
  2. Serializable
  3. public
  4. public
  5. "時(shí)間[{0:yyyy年MM月dd日 HH時(shí)mm分}]方法{1}發(fā)生異常: {2}\n{3}"Name
  6. Continue
  7. public
  8. return

注意Postsharp的Aspect都需要標(biāo)記為可序列化的,因?yàn)樵诰幾g時(shí)會(huì)為我們二進(jìn)制序列化為資源,減少在運(yùn)行是的開(kāi)銷,這個(gè)將在后面專門講。

上面的code繼承至OnExceptionAspect,并且override OnException和GetExceptionType,GetExceptionType為我們需要處理的特定異常。OnException為異常處理決策方法。我們的異常處理決策是當(dāng)NullReferenceException時(shí)候我們會(huì)記錄日志,并且方法指定繼續(xù)(args.FlowBehavior = FlowBehavior.Continue)。

看看我們的測(cè)試代碼:

  1. View
  2. static
  3. Read
  4. publicstatic
  5. null
  6. publicstatic
  7. "exception"

很顯然我們的兩個(gè)方法拋出了null異常和自定義異常,預(yù)期是NullReferenceException會(huì)被撲捉,而自定義異常會(huì)中斷,運(yùn)行效果如下:

AOP之PostSharp初見(jiàn)-OnExceptionAspect

我們?cè)趤?lái)看看postsharp為我們做了什么,當(dāng)然是反編譯看看:

二:Postsharp的Multicasting

1:Multicasting class:

 在這隨便也說(shuō)一下postsharp的Multicasting,多播這樣翻譯感覺(jué)有點(diǎn)死板呵呵,理解就行。利用這一點(diǎn)我們可以吧我們的aspect放在class,assembly等目標(biāo)上匹配我們的多個(gè)目標(biāo)。比如現(xiàn)在我們不想在我們的每個(gè)方法上加attribute,那我們可以選擇在class上,如:

AOP之PostSharp初見(jiàn)-OnExceptionAspect

反編譯,同樣注入了我們每個(gè)方法:

AOP之PostSharp初見(jiàn)-OnExceptionAspect

2:Multicasting assembly:

我們同樣可以利用

[assembly: PostSharpDemo.ExceptionAspectDemoAttribute()]

標(biāo)記在我們的程序集上。

3:AttributeExclude:

但是注意這樣也標(biāo)記了我們的aspect,某些時(shí)候可能會(huì)導(dǎo)致堆棧溢出 ,我們可以用AttributeExclude=true來(lái)排除。

同時(shí)我們也可以設(shè)置應(yīng)用目標(biāo):AttributeTargetMemberAttributes是一個(gè)枚舉類型,定義如下:

AOP之PostSharp初見(jiàn)-OnExceptionAspect

比如我們需要過(guò)濾編譯時(shí)候生成的目標(biāo)(自動(dòng)屬性,action等等),

[assembly: PostSharpDemo1.MethodTraceAspect(AttributeExclude = true, AttributePriority = 0, AttributeTargetMemberAttributes = MulticastAttributes.CompilerGenerated)]

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


文章名稱:AOP之PostSharp初見(jiàn)-OnExceptionAspect-創(chuàng)新互聯(lián)
文章分享:http://m.jcarcd.cn/article/djesjh.html
主站蜘蛛池模板: 午夜国产精品精品 | 国产美女| 日韩电影 | 日韩一区在线播放 | 国产乱子伦露脸在线 | 三区四区 | 动漫一区二区三区 | 欧美影院一区 | 国产欧美一级精品 | 无码h黄肉动漫在线观看网站 | 国产美女裸网站 | 尤物精品 | 国产在线视频奶水 | 制服丝袜第一页在线 | 成人经典免费在 | 日韩免费视频播播 | 国内精品自产拍 | 成人影视福利 | 精品一4区| 9亚洲色| 乱伦日本影视 | 国产亚洲精品精华液 | 欧美一区日韩专区 | 69视频在线观看 | 中文字幕在线免费看 | 国产人碰人摸人爱 | 日韩永久在线观 | 3d成人动漫资源 | 福利在线视频欧美 | 日韩伦伦午夜 | 国产欧美国日产综合 | 成人精品视频 | 国产传媒| 国产精品多人 | 欧美三级视频 | 国产女与黑 | 日韩精品首页 | 成人免费| 玖玖视频神马福 | 日本在线看片网站 | 午夜福利在 |