如何判断中间件是否包含Run()?

时间:2019-03-27 02:41:40

标签: asp.net-core asp.net-core-middleware

在ASP.NET Core中,是否有任何方法可以判断给定的中间件是否包含Run()调用,这将终止管道?看来UseMvc()是个大问题,但我什至对此不确定,我一直在读,它需要放在最后,我想是因为它包含对Run()的调用

也许有一种方法可以为当前使用的所有中间件生成管道的可视化显示,以显示哪个包含Run()调用?

1 个答案:

答案 0 :(得分:0)

除了阅读有关每个特定中间件的文档外,没有确定的方法可以解释。

在我的问题的评论中引用itminus:

  1. 不仅Run(),而且MapWhen()都会终止该过程。而且,任何人都可以创建一个自定义中间件,该中间件不调用下一个委托,然后终止。
  2. 确定是否需要调用下一步是中间件的职责。除了阅读文档/源代码之外,没有内置的可视化管道的方法。这是因为所有中间件都将在启动时内置到单个最终委托中。收到传入消息时,将使用最终委托处理请求。作为程序员,我们知道中间件将要做什么,我们知道它的分支时间,并且我们知道它终止的时间,这是因为我们编写了代码。但是该程序直到它真正运行时才知道,因为最终委托是在启动时构建的。