欢迎大家阅读《朝夕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多种注册方式支持依赖注入相关推荐

  1. 【朝夕技术专刊】Core3.1WebApi_Filter详解

    欢迎大家阅读<朝夕Net社区技术专刊>第4期 我们致力于.NetCore的推广和落地,为更好的帮助大家学习,方便分享干货,特创此刊!很高兴你能成为忠实读者,文末福利不要错过哦! 01 PA ...

  2. Spring学习(二)—— 对象创建方式及依赖注入

    文章目录 对象创建方式 配置 依赖注入 构造器注入 Set方式注入 拓展方式注入 对象创建方式 默认使用无参构造器创建 当我们需要使用有参构造器时,有以下几种方式: 1.下标赋值 <!--第一种 ...

  3. 【朝夕技术专刊】Core3.1WebApi_Filter-Authorize详解

    欢迎大家阅读<朝夕Net社区技术专刊>第6期 我们致力于.NetCore的推广和落地,为更好的帮助大家学习,方便分享干货,特创此刊!很高兴你能成为忠实读者,文末福利不要错过哦! 前言: 本 ...

  4. 【朝夕技术专刊】WebApi部署多服务器配置Nginx负载均衡

    欢迎大家阅读<朝夕Net社区技术专刊>第3期 我们致力于.NetCore的推广和落地,为更好的帮助大家学习,方便分享干货,特创此刊!很高兴你能成为首期读者,文末福利不要错过哦! 01 PA ...

  5. 数据库用户表结构设计-多种注册方式含第三方登录

    传统互联网已经过渡到移动互联网的时代,我们在开发android.ios.小程序等的时候,客户端的注册方式已经非常的丰富多样.所以,后台的用户表的设计也需要适应不同注册方式「不断扩张」及「相互绑定」的情 ...

  6. autofac 作用域_.Net Core3.1下使用Autofac实现依赖注入

    前言 Autofac是.NET领域最为流行的IOC框架之一,传说是速度最快的一个.它和C#语言的结合非常紧密,在使用过程中对你的应用的侵入性几乎为零,更容易与第三方的组件集成.主要优点如下(此段描述为 ...

  7. servlet的多种注册方式

    基于 servlet3.0以及以上版本 注册Servlet的多种方式 web.xml metadata-complete metadata-complete=true ,表示只使用 web.xml,不 ...

  8. 如何用最简单的方式解释依赖注入?依赖注入是如何实现解耦的?

    第一章:小明和他的手机 从前有个人叫小明 小明有三大爱好,抽烟,喝酒-- 咳咳,不好意思,走错片场了.应该是逛知乎.玩王者农药和抢微信红包 小明的三大爱好 我们用一段简单的伪代码,来制造一个这样的小明 ...

  9. 2023阿里云账号注册流程(多种注册方法随便选)

    阿里云账号怎么注册?阿里云账号支持手机号注册.阿里云APP注册.支付宝和钉钉多种注册方式,账号注册后需要通过实名认证才可以购买或使用云产品,阿里云百科来详细说下不同途径注册阿里云账号图文流程: 目录 ...

最新文章

  1. ISME:比较基因组学揭示蓝藻进化和生境适应性特征
  2. 《LeetCode力扣练习》第13题 C语言版 (做出来就行,别问我效率。。。。)
  3. 公司的5GWiFi延迟有多低?来看图体验一下!
  4. win7 桌面图标拖不动解决方法
  5. 010 数据结构逆向—链表
  6. QQ开心农场外挂软件设计思路
  7. python亲密度_Python OpenCV 图像2D直方图,取经之旅第 25 天
  8. Maven项目的基本创建步骤
  9. 还看不懂同事的代码?Lambda 表达式、函数接口了解一下
  10. java中random方法取值范围_Java中的Random()函数
  11. linux哪个系统能编译固件,rk3328编译Linux固件
  12. atitit.事件驱动的总结attilax
  13. 基于springboot+vue的毕业论文选题答辩管理系统
  14. gabor滤波器matlab实现,使用matlab实现Gabor滤波器
  15. 安装ubuntu黑屏,修复分区表
  16. Unity3D坦克大战项目总结
  17. 福州大学计算机学院奖学金,福州大学最新学院奖学金评定标准
  18. /etc/sudoers文件解析
  19. 企业邮箱如何免费申请注册?
  20. JAVA经典算法40题

热门文章

  1. HQ-day2 C#语言基础
  2. dropbox mac_如何在Windows或Mac上启动时阻止Dropbox打开
  3. 如何在Safari中查看网页的完整URL
  4. vscode配置、使用git
  5. linkbox php,win10 docker-toolsbox 搭建php开发环境的教程
  6. Js获取当前页面URL各种参数
  7. hibernate自定义校验器使用(字段在in范围之内)
  8. bondat蠕虫传播与对抗
  9. PHP中session与cookie的简单使用
  10. 设置润乾报表鼠标移到格子上就显示提示内容