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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【朝夕技术专刊】Core3.1WebApi_Filter多种注册方式支持依赖注入

發布時間:2023/12/4 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【朝夕技术专刊】Core3.1WebApi_Filter多种注册方式支持依赖注入 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

歡迎大家閱讀《朝夕Net社區技術專刊》第5期

我們致力于.NetCore的推廣和落地,為更好的幫助大家學習,方便分享干貨,特創此刊!很高興你能成為忠實讀者,文末福利不要錯過哦!

01

PART

CoreFilter多種注冊方式

在上一篇的文章中;定義的幾個Filter,在截圖看到了有帶參數ILoggerFactory loggerFactory的;而且在執行的時候,在控制器方法中直接用中括號標記注冊Filters是無法傳遞ILoggerFactory參數的,那如何讓Filter注冊可以支持帶參數的構造函數呢?還有其他幾種注冊方式,可以支持傳遞參數、其實是通過IOC依賴注入進去的參數;?

一.直接通過特性標記在方法和控制器,看圖1,圖2;定義的Filter必須擁有無參數構造函數;不能傳遞參數。


圖1:僅僅只是對當前方法生效

圖2:對當前:控制器生效

二.如果需要傳遞參數怎么辦呢?,通過TypeFilter標記在方法和控制器,看圖3,圖4;定義的Filter中可以不擁有無參數構造函數;且只能有一個合適的構造函數。

圖3

圖4

三.除了通過TypeFilter注冊可以注入參數;還可以通過ServiceFilter (還要在ConfigureService中標記)標記在方法和控制器,看圖5,圖6;定義的Filter中可以不擁有無參數構造函數;且只能有一個合適的構造函數。

ConfigureService注冊服務:

使用TypeFilter 注冊Filter 需要在ConfigureService中注冊服務;

圖5

圖6

其實TypeFilter和ServiceFilter都是實現IFilterFactory接口通過CreateInstance方法創建的Filter實例,此處也可以擴展定制創建;詳情可聯系助教老師(微信:ZhaoxiNet007)獲取

四.全局注冊:直接上代碼,看圖7,定義的Filter中可以不擁有無參數構造函數;且只能有一個合適的構造函數.全局注冊以后,整個項目中都會生效;

圖7

那么上面說了,TypeFilter和ServiceFilter 都是實現了IFilterFactory接口來實現的;那是不是可以自定義擴展一個呢? 當然OK?的;如圖8

圖8

圖9

圖10

自定義CustomIOCFilterFactory 特性來注冊Filter支持依賴注入;其實都是實現自IFilterFactory 接口;

下期預告

【朝夕Net社區技術專刊】第6期:

WebApi_Filter-Authorize授權鑒權詳解

總結

以上是生活随笔為你收集整理的【朝夕技术专刊】Core3.1WebApi_Filter多种注册方式支持依赖注入的全部內容,希望文章能夠幫你解決所遇到的問題。

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