日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

巧用ActionFilter的AOP特性,为返回的数据增加返回码和消息

發布時間:2023/12/4 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 巧用ActionFilter的AOP特性,为返回的数据增加返回码和消息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

對于處理接口返回值統一加密,過濾,特定值統一處理,統一返回等多種需求,net的攔截器前置攔截比較常用,例如:登錄校驗,參數格式校驗等等。接下來介紹filter。

filter過濾器實現

filter的ActionFilterAttribute可以做一定的處理,通過對OnActionExecuted的執行控制,來實現很多場景。ActionFilterAttribute類是C# ASP.net MVC中的過濾類,跟JAVA的Filter效果類似,但是Filter是接口。ActionFilterAttribute類是被abstract 修飾符修飾,表示該類只能是基類,也就是只能被繼承。ActionFilterAttribute類中只有一個無參數的構造函數和四個被protected 修飾符修飾,表示該方法只限于本類和子類訪問,實例不能訪問。

代碼實現

///?<summary>///?Service返回數據過濾器,為返回的數據增加返回碼和消息///?</summary>public?class?ReturnDataFilterAttribute?:?ActionFilterAttribute{private?static?JsonMediaTypeFormatter?_formatter;static?ReturnDataFilterAttribute(){_formatter?=?new?JsonMediaTypeFormatter();//設置序列化器為json序列化器//????????????_formatter.UseDataContractJsonSerializer?=?true;//設置時間格式為Local_formatter.SerializerSettings.DateTimeZoneHandling?=?Newtonsoft.Json.DateTimeZoneHandling.Local;_formatter.SerializerSettings.DateFormatString?=?"yyyy-MM-ddTHH:mm:ss.fffzz:00";//設置縮進_formatter.SerializerSettings.Formatting?=?Newtonsoft.Json.Formatting.Indented;//設置json格式為駝峰式_formatter.SerializerSettings.ContractResolver?=?new?CamelCasePropertyNamesContractResolver();}public?override?void?OnActionExecuted(HttpActionExecutedContext?actionExecutedContext){if?(actionExecutedContext.Response?!=?null){var?oldResponse?=?actionExecutedContext.Response;//response狀態為請求成功var?result?=?new?System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.OK);if?(ApiMatch(ConfigHelper.GetAppSetting("IgnoreReturnDataFilter"),actionExecutedContext.Request.RequestUri.AbsolutePath)){result.Content?=?oldResponse.Content;}else{object?content?=?null;var?objectContent?=?oldResponse.Content?as?ObjectContent;if?(objectContent?!=?null){content?=?objectContent.Value;}//把action返回的值放到ReturnData的Result中result.Content?=new?ObjectContent<ReturnData>(new?ReturnData?{Msg?=?"成功",?Ret?=?CustomException.NoneError,?Result?=?content},_formatter);}actionExecutedContext.Response?=?result;}}///?<summary>///?API數據中的API是否匹配請求URIi///?</summary>///?<param?name="apiArray">API數據</param>///?<param?name="uri">請求URI</param>///?<returns>是否匹配</returns>private?static?bool?ApiMatch(string?apiArray,?string?uri){var?result?=?false;if?(!string.IsNullOrWhiteSpace(apiArray)){var?apiList?=?apiArray.ToLower().Split(',');string?uriLower?=?uri.ToLower();foreach?(var?api?in?apiList){if?(api?==?uriLower?||?api?+?"/"?==?uriLower){result?=?true;break;}}}return?result;}}//返回數據過濾器config.Filters.Add(new?ReturnDataFilterAttribute());

總結

以上是生活随笔為你收集整理的巧用ActionFilter的AOP特性,为返回的数据增加返回码和消息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人免费毛片糖心 | 视频三区在线 | 一区视频在线 | 91毛片观看 | 日韩欧美国产精品综合嫩v 国产小毛片 | 奇米精品一区二区三区在线观看 | 午夜精品久久久久久久久久久 | 欧美黄色a | 一级黄色裸体片 | 在线观看99 | 欧美精品一区二区免费看 | 国产精品7777777 | 欧美第一页草草影院 | 中文字幕在线观看二区 | 国产高清视频免费在线观看 | 中文字幕永久在线播放 | 国产尤物av | 亚洲av日韩精品久久久久久久 | 精产国品一区二区 | 色5566| 91精品欧美一区二区三区 | 中文字幕有码在线视频 | 亚洲无吗在线观看 | 制服丝袜亚洲色图 | 免费一级特黄特色毛片久久看 | 亚洲综合性| 免费看毛片的网站 | 末发成年娇小性xxxxx | 五月婷婷综合在线 | 日韩毛片免费看 | 少妇av导航 | 黄色喷水视频 | 亚洲一区二区观看 | 亚洲爆乳无码精品aaa片蜜桃 | av丝袜在线| 欧美整片在线 | 国产精品一区二区久久国产 | 91av亚洲| 国产亚洲视频在线 | 日本特级黄色大片 | 日本少妇bbwbbw精品 | av免费在线观看不卡 | 影音先锋成人资源网 | www.youjizz.com在线观看 | 国产精品视频1区 | 中文精品久久 | 日本寂寞少妇 | 中文字幕日韩视频 | 国产精品二区一区二区aⅴ 一卡二卡三卡在线观看 | 日本做爰高潮又黄又爽 | 冈本视频在线观看 | 91.xxx.高清在线 | 成人h在线| 久久综合亚洲 | 一区二区av在线 | 国产一区二区在线精品 | 国产91视频在线 | 国产视频污 | 少妇被按摩师摸高潮了 | av站 | 日本三级日本三级日本三级极 | 国产性猛交╳xxx乱大交 | 欧美三日本三级少妇99 | 欧美日韩一区二区在线观看视频 | 歪歪6080| 99热这里只有精品在线 | 免费20分钟超爽视频 | 少妇高潮一区二区三区99小说 | 国产爽视频 | 一区二区在线免费观看 | 日本美女黄色大片 | 国精产品乱码一区一区三区四区 | 96国产在线 | 亚洲一区免费在线观看 | 精品久久福利 | 聚色av| 97人妻人人揉人人躁人人 | 欧美成人性生活 | 快色网站 | 97公开视频 | 永久av免费在线观看 | 久一视频在线观看 | 国产一级视频在线 | 国产91区 | 欧美精品一区二区久久婷婷 | 黄色高清免费 | 日本黄色播放器 | 久久精品一 | 毛片视频免费观看 | 一区二区三区在线不卡 | 亚洲人成人无码网www国产 | 亚洲欧洲精品一区二区三区 | 91嫩草香蕉 | www欧美 | 国产20页 | 密臀久久| 日本一本二本三区免费 | 国产精品推荐 | 欧美精品v国产精品v日韩精品 |