全站搜索
首页/天辰娱乐登录/注册平台
首页/天辰娱乐登录/注册平台
  • 天辰娱乐注册
  • 天辰娱乐登录
  • 天辰娱乐招商QQ
  • Core MVC 之过滤器(Filter)
    作者:admin 发布于:2022-08-06 15:33 文字:【】【】【

      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 的一个人,也许拜望其上下文和结构函数。比方,主题件很难检测到恳求的模型验证是否爆发过错,况且做出相应的反响。返回搜狐,审查更多

    相关推荐
  • 高效过滤器(高效过滤器能细菌吗)
  • 审定收效丨广东威浪仕负压过滤器占有多项原创性本事劳绩总体到达国际提高水
  • 中国中心空调过滤器数据监测报告
  • 约克仪器推出新一代高精度冷镜露点仪
  • 第七届易贸生物家产大会亮点纷呈 乐纯生物等明星公司发布“抗体临盆上游工
  • 户外天井“新风口”泳池纯洁呆滞人寂然发作
  • 脸黑、眼圈黑、嘴唇也黑?肝病刘慧敏大夫:这是肝脏受损的表现
  • 2022-2027年中原低压过滤器行业投资发挥及“十四五”进取机缘钻研申诉
  • 圣泉整体08月31日大跌股价创史乘新低
  • 捷心隆文书2022财年中期权益分拨策划
  • 脚注信息
    Copyright © 2026 首页/天辰娱乐登录/注册平台 TXT地图 HTML地图 XML地图