ASP.NET Core 中间件分类

栏目: IT技术 · 发布时间: 6年前

内容简介:ASP.NET Core 中间件的配置方法可以分为以上三种,对应的Helper方法分别是:Run(), Use(), Map()。实际中呢,Use()这个helper方法用的最多。

ASP.NET Core 中间件分类

ASP.NET Core 中间件的配置方法可以分为以上三种,对应的Helper方法分别是:Run(), Use(), Map()。

  • Run(),使用Run调用中间件的时候,会直接返回一个响应,所以后续的中间件将不会被执行了。

  • Use() ,它会对请求做一些工作或处理,例如添加一些请求的上下文数据,有时候甚至什么也不做,直接把请求交给下一个中间件。

  • Map(),它会把请求重新路由到其它的中间件路径上去。

实际中呢,Use()这个helper方法用的最多。

Run():

ASP.NET Core 中间件分类

这是一个使用Run方法调用的中间件,Run方法会终止整个中间件管道,它应该返回某种类型的响应。

Use():

ASP.NET Core 中间件分类

Use看起来和Run差不多,但是多了一个next参数。next可以用来调用请求管道中的下一个中间件。而当前的中间件也可以自己返回响应,这就忽略掉了next调用。

在next调用之前,我们可以写一些请求进来的逻辑,而在next调用之后,就相当于返回响应了,这时候也可以写一些逻辑。

在本例中,我们下面还使用了Run方法注册了另一个中间件。因为中间件会按照它们注册的顺序进行调用,所以在第一个Use方法里执行next.Invoke()的时候,就会执行下面Run所调用的中间件。

Map():

ASP.NET Core 中间件分类

Map方法可以把请求路由到其它的中间件上面。

在这里,如果请求的路径以/jump结尾,那么它所对应的handler方法,也就是HereIAm方法的中间件就会被调用,并返回一个响应。

而如果请求的路径不是以/jump结尾,那么HereIAm方法里面的中间件就不会被调用。

中间件Class

上面的例子,我都是使用的inline写法的中间件。

而实际上,中间件通常是自成一个类。中间件的类需要类似这样:

ASP.NET Core 中间件分类

自定义的中间件类需要由这几部分组成:

  • 接受一个RequestDelegate类型的参数next的构造函数。

  • 按约定,还需要定义一个叫做Invoke的方法。该方法里会包含主要的业务逻辑,并且它会被请求管道所执行。Invoke方法可以忽略里面的_next调用,并返回一个响应;也可以调用_next.Invoke()把请求发送到管道的下一站。

ASP.NET Core 中间件分类


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

Redis开发与运维

Redis开发与运维

付磊、张益军 / 机械工业出版社 / 2017-3-1 / 89.00

本书全面讲解Redis基本功能及其应用,并结合线上开发与运维监控中的实际使用案例,深入分析并总结了实际开发运维中遇到的“陷阱”,以及背后的原因, 包含大规模集群开发与管理的场景、应用案例与开发技巧,为高效开发运维提供了大量实际经验和建议。本书不要求读者有任何Redis使用经验,对入门与进阶DevOps的开发者提供有价值的帮助。主要内容包括:Redis的安装配置、API、各种高效功能、客户端、持久化......一起来看看 《Redis开发与运维》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具