【发布时间】:2019-08-17 12:51:07
【问题描述】:
有没有办法在 ASP.NET Core 中判断任何给定的中间件是否包含将停止管道的 Run() 调用?似乎UseMvc() 是一个大的,但我什至不确定,我只是继续阅读它需要在最后,我认为这是因为它包含对Run() 的调用。
也许有一种方法可以为当前使用的所有中间件生成管道的可视化,显示哪个包含Run() 调用?
【问题讨论】:
-
1.不仅
Run(),MapWhen()也会终止进程。此外,任何人都可以创建一个不调用next委托的自定义中间件,然后导致终止。 2. 中间件的职责是判断是否需要调用next。除了阅读文档/源代码外,没有内置方法可以可视化管道。这是因为所有的中间件都将在启动时构建到一个最终的委托中。当有传入消息时,最终的委托将用于处理请求。 -
[太长,无法作为一条评论发表] 作为程序员,我们知道中间件会做什么,我们知道它的分支时间,我们知道它终止的时间,这是因为我们编写代码。但是程序在实际运行之前不会知道它,因为最终委托是在启动时构建的。
-
@itminus 谢谢,你有什么理由不把它作为答案发布?
-
因为问题是“如何分辨”。我的回复仅描述了中间件的工作原理,似乎并没有回答问题本身。所以我把它作为评论发布。
-
@itminus 您的回答似乎是,“除了阅读每个特定中间件的文档之外,没有确定的方法来判断。”
标签: asp.net-core asp.net-core-middleware