内容简介:ASP.NET Core 中间件的配置方法可以分为以上三种,对应的Helper方法分别是:Run(), Use(), Map()。实际中呢,Use()这个helper方法用的最多。
ASP.NET Core 中间件的配置方法可以分为以上三种,对应的Helper方法分别是:Run(), Use(), Map()。
-
Run(),使用Run调用中间件的时候,会直接返回一个响应,所以后续的中间件将不会被执行了。
-
Use() ,它会对请求做一些工作或处理,例如添加一些请求的上下文数据,有时候甚至什么也不做,直接把请求交给下一个中间件。
-
Map(),它会把请求重新路由到其它的中间件路径上去。
实际中呢,Use()这个helper方法用的最多。
Run():
这是一个使用Run方法调用的中间件,Run方法会终止整个中间件管道,它应该返回某种类型的响应。
Use():
Use看起来和Run差不多,但是多了一个next参数。next可以用来调用请求管道中的下一个中间件。而当前的中间件也可以自己返回响应,这就忽略掉了next调用。
在next调用之前,我们可以写一些请求进来的逻辑,而在next调用之后,就相当于返回响应了,这时候也可以写一些逻辑。
在本例中,我们下面还使用了Run方法注册了另一个中间件。因为中间件会按照它们注册的顺序进行调用,所以在第一个Use方法里执行next.Invoke()的时候,就会执行下面Run所调用的中间件。
Map():
Map方法可以把请求路由到其它的中间件上面。
在这里,如果请求的路径以/jump结尾,那么它所对应的handler方法,也就是HereIAm方法的中间件就会被调用,并返回一个响应。
而如果请求的路径不是以/jump结尾,那么HereIAm方法里面的中间件就不会被调用。
中间件Class
上面的例子,我都是使用的inline写法的中间件。
而实际上,中间件通常是自成一个类。中间件的类需要类似这样:
自定义的中间件类需要由这几部分组成:
-
接受一个RequestDelegate类型的参数next的构造函数。
-
按约定,还需要定义一个叫做Invoke的方法。该方法里会包含主要的业务逻辑,并且它会被请求管道所执行。Invoke方法可以忽略里面的_next调用,并返回一个响应;也可以调用_next.Invoke()把请求发送到管道的下一站。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
计算机是怎样跑起来的
[日] 矢泽久雄 / 胡屹 / 人民邮电出版社 / 2015-5 / 39.00元
本书倡导在计算机迅速发展、技术不断革新的今天,回归到计算机的基础知识上。通过探究计算机的本质,提升工程师对计算机的兴趣,在面对复杂的最新技术时,能够迅速掌握其要点并灵活运用。 本书以图配文,以计算机的三大原则为开端、相继介绍了计算机的结构、手工汇编、程序流程、算法、数据结构、面向对象编程、数据库、TCP/IP 网络、数据加密、XML、计算机系统开发以及SE 的相关知识。 图文并茂,通俗......一起来看看 《计算机是怎样跑起来的》 这本书的介绍吧!