测试.NET core MiddleWare 运行逻辑

话不多说,直接开整。

首先创建一个.NET CORE web 工程,创建完成之后,会自动创建相关文件如图(本示例基于.NET CORE 3.0):

打开Startup.cs可以看到在Configure中默认添加了几个中间件的引用

如 StaticFiles是对静态文件的引用,顺便说一下在.NET CORE下的web 引用的静态资源要放在wwwroot下。

直接F5运行,选择IISEXPRESS 自托管方式,可以看到空站点是可以正常运行的。

 下面我们就来加一些代码,来对中间件的运行逻辑进行测试。代码如下,添加3个自定义中间件:

 运行结果如下:

 可以看出,在每个中间件执行next()方法之后,会自动跳转到下一个中间件开始执行,当执行到最后一个中间件之后,再一层层返回。在每个中间件都有一个阻隔终止作用,如果执行到某个中间件,发现没有执行next()方法,则会立即终止,层级向上返回。

为了测试,我们将第二个中间件的代码修改一下,并再次执行结果如下:

 通过运行结果,可以看出我们的分析逻辑是正确的,程序运行到第二个中间件时,没有next.Invoke指令,则停止并立即按顺序层级返回。

总结:.NET CORE中通信管道的中间件,有些像 http的请求路由,来管理不同应用模块需要的中间件。

猜你喜欢

转载自www.cnblogs.com/psycheeeeeblog/p/12344707.html