全站搜索
首页『光辉娱乐』Homepage
首页『光辉娱乐』Homepage
光辉娱乐Core MVC 之过滤器(Filter)
作者:管理员    发布于:2022-08-06 10:01    文字:【】【】【

  ASP.NET MVC 中的过滤器许诺在实践管讲中的特定阶段之前或之后运转代码。能够对全局,也恐怕对每个控制器或每个独揽布置过滤器。

  差别的过滤器典型正在管讲中的区别阶段实施,是以具有各自的与其场景。依照需求践诺的干事以及必要施行的哀求管道中的位置,选纲领创建的过滤器类型。过滤器在 MVC 独揽调用管说中运转,偶然也称为过滤管谈,正在 MVC 中选纲目推广的驾御后,施行把握上的过滤器,如图:

  区别的过滤器在管讲内的分别身分实行。像授权过滤器这样的过滤器只在管叙中靠前的位置实践。其所有人过滤器,如支配(Action)过滤器,可能在管讲实行的其大家局部之前和之后执行,如图:

  资源过滤器是正在授权之后第一个处罚央求的过滤器,也是末了一个正在苦求分裂过滤管说时干戈哀求的过滤器。正在效力方面,对完毕缓存恐怕对过滤管讲举办短路 特别有用。

  把握过滤器包装对单个担任举措的挪用,而且可以处治传递到把握的参数以及从支配返回的掌握收场。

  终局过滤器包装单个担任收场的实施,并且尽正在左右执行获胜时运转。它们一定是纠缠视图实践或形式化模范实践的逻辑的理想选用。

  一共过滤器均可履历分歧的接口界说救援同步和异步的实现。根据必要推广的做事模范,选择同步或异步告竣。从框架的角度看,它们是可以互换的。

  过滤器有三种分歧级其余效率域。大家不妨在特定的操作上用特点(Attribute)的样子使用特定的过滤器。也可能正在控造器上用特色的体式行使过滤器,如此就可以将效力效力在控造器内的全豹左右上。大概注册一个全部过滤器,它将功用于关座 MVC 利用表率的每一个操作。

  过滤器既可能始末类型添加,也或者经历实例扩张。假如通过实例增添,则该实例会被利用于每一个吁请。倘若通过楷模扩展,则正在每次仰求后都市创建一个实例,其全豹构制函数依靠项都将始末 DI 来填充。

  把过滤器接口的完毕作为特质利用也杰出简单。过滤器特征可使用于控制器和左右主张。框架网罗了内置的基于特性的过滤器,或许接受大家可能另外定制。譬喻,下面的过滤器接受了 ResultFilterAttribute,并抄写 OnResultExecuting 主见(正在反应中增加一个讯歇头):

  特征同意过滤器继承参数,如下,可将此特性加添到控造器或左右中,并为其指定所需 HTTP 头的名称和值:

  始末创制传入过滤器设施的凹凸文参数中的 Result 属性,也许在过滤器管说的猖獗一点短途管叙。比方,下面的 ShortCircuitingResourceFilter 将反对它之后管说内的一共过滤器,包括总共左右过滤器:

  全体过滤器正在 Startup 中布置。基于特征的过滤器如果不需要任何凭借,不妨便当地担负一个已存在地过滤器相对应地特点范例。假如要创建一个非全部用意域,但需求从依赖注入中赢得依赖项的过滤器,那么正在它们上面加上 ServiceFilterAttribute 或 TypeFilterAttribute 特色,云云就可用于控造器或操纵了。

  以特性样子实现的,直接推广到控制器或操作的过滤器,其构造函数不得由依赖注入供给仰仗项。其原故正在于,特性所需的构造函数参数一定由使用叙直接需要。这是特质原型机理的限制。

  假若过滤器需要从 DI 中赢得依据项,那么或者用以下几种手段正在类或驾驭举措使用:

  因为这种差异,行使 TypeFilterAttribute 援用的外率不需要正在运用前向容器注册,但它们仍由容器来扩张其依据项。光辉娱乐此外,TypeFilterAttribute 大概可选的承当该外率的构制函数参数。下面是 TypeFilterAttribute 树范:

  如果有一个利便的过滤器,不需求任何参数,但有构造函数需要经过 DI 扩展凭借项,那么不妨担当 TypeFilterAttribute,同意使用自己定名的特点类和门径(而不是 [TypeFilterAttribute(typeof(FilterType))])。下面的过滤器显现了奈何完毕此结果:

  IFilterFactory 杀青 IFilter ,以是正在过滤器管叙中,任何身分的 IFilterFactory 实例都可当作 Filter 实例来利用。当框架企图挪用过滤器时,将尝试将其变更为 IFilterFactory 。倘使更换成功, 则挪用 CreateInstance 措施来创修将被移用的 IFilter 实例。这是一种了得疾速的安置,因为当行使圭臬启动时,不必要较着地树立确切地过滤器。

  我们可能在自身地特性中达成 IFilterFactory 几口,作为另一种创建过滤器的办法:

  过滤器恐怕行使于负责门径或控制器(履历特色)或扩展到全体过滤器聚集中。用意域时时也决策了排序,最挨近支配的过滤器开始运行。

  除了效力域,过滤器还可以资历竣工 IOrderedFilter 来钞写它们的践诺纪律。此接口容易的映现了一个 int Order 属性,并且过滤器基于该属性以数字升序履行。通盘内置的过滤器,收罗 TypeFilterAttribute 和 ServiceFilterAttribute ,都完毕 IOrderedFilter 接口。,所以当将过滤器特质利用于类或宗旨时,可能指定过滤器履行规律。默认情状下,全盘内置过滤器的 Order 属性都为0,于是范围用作阻隔符,而且是决议性因素(除非 Order 设置为 0)。

  每个从 Controller 基类承当的控造器都席卷 OnActionExecuting 和 OnActionExecuted 宗旨。这些法子为给定担任包装了过滤器,它们永别开始运转和最终运行。要是没有为任何过滤器修树 Order 舒总,那么洁白基于范围的规律为:

  要筑改默认的基于范围的纪律,则应闪现树立类级别大概主意级别过滤器的 Order 属性。比如,将 Order = -1 扩展到法子级属性:

  Controller 类的办法老是在扫数过滤器之前和之后运行。这些手腕不算作IFilter实例完毕。也不参加IFilter排序算法。

  寻常来说,过滤器用于处罚生意与运用范例的横切合怀点,用法和功效很像中央件,但过滤器允诺你将效用界限缩幼,光辉娱乐并将其插入到运用法度中用意义的名望,例如视图之前或模型绑定之后。过滤器是 MVC 的一一面,或者探望其崎岖文和构造函数。譬喻,中央件很难检测到吁请的模子验证是否崭露错误,况且做出相应的反响。返回搜狐,巡视更多

相关推荐
  • 光辉娱乐注册2021年华夏过滤网修理墟市考察及投资策略分析申诉
  • 光辉娱乐Core MVC 之过滤器(Filter)
  • 光辉娱乐从新界说氛围干净阿尔卡司『氛围洗濯机』有哪些改善之处?
  • 光辉娱乐注册“他凭一己之力把 GitHub Copilot 搞崩了……”
  • 光辉娱乐注册不锈钢呆板式过滤器 活性炭过滤器 石英砂
  • 光辉娱乐榆林软化水配备厂家玻璃钢软化水配备配件
  • 光辉娱乐注册净水器十大品牌排名榜(清水器(过滤器)——十大品牌排名)
  • 光辉娱乐注册2022-2027年中国真空泵过滤器行业投资会意及“十四五”成长机遇商酌陈述
  • 光辉娱乐注册新三板改造层公司南京试剂新增专利音信授权:“一种带有防尘罩的敞口过滤器”
  • 光辉娱乐注册转胀式稹密过滤器
  • 脚注信息
    版权所有 Copyright(C)2019 光辉娱乐
    网站地图|xml地图|友情链接: 百度一下