如何判断中间件是否包含 运行()?
How to tell if middleware contains a Run()?
是否有任何方法可以在 ASP.NET Core 中判断任何给定的中间件是否将包含一个 Run()
调用来停止管道?似乎 UseMvc()
是一个大的,但我什至不确定,我只是继续阅读它需要在最后,我假设它是因为它包含对 Run()
的调用.
也许有一种方法可以为当前使用的所有中间件生成管道的可视化,显示哪个包含 Run()
调用?
除了阅读每个特定中间件的文档之外,没有确定的方法来判断。
在对我的问题的评论中引用 itminus:
- 不仅运行(),MapWhen()也会终止进程。此外,任何人都可以创建不调用下一个委托然后导致终止的自定义中间件。
- 判断是否需要调用next是中间件的职责。除非您阅读 document/source 代码,否则没有可视化管道的内置方法。这是因为所有中间件都将在启动时构建到一个最终委托中。当有传入消息时,最终委托将用于处理请求。作为程序员,我们知道中间件将做什么,我们知道它分支的时间,我们知道它终止的时间,因为我们编写了代码。但是程序在实际运行之前不会知道它,因为最终委托是在启动时构建的。
是否有任何方法可以在 ASP.NET Core 中判断任何给定的中间件是否将包含一个 Run()
调用来停止管道?似乎 UseMvc()
是一个大的,但我什至不确定,我只是继续阅读它需要在最后,我假设它是因为它包含对 Run()
的调用.
也许有一种方法可以为当前使用的所有中间件生成管道的可视化,显示哪个包含 Run()
调用?
除了阅读每个特定中间件的文档之外,没有确定的方法来判断。
在对我的问题的评论中引用 itminus:
- 不仅运行(),MapWhen()也会终止进程。此外,任何人都可以创建不调用下一个委托然后导致终止的自定义中间件。
- 判断是否需要调用next是中间件的职责。除非您阅读 document/source 代码,否则没有可视化管道的内置方法。这是因为所有中间件都将在启动时构建到一个最终委托中。当有传入消息时,最终委托将用于处理请求。作为程序员,我们知道中间件将做什么,我们知道它分支的时间,我们知道它终止的时间,因为我们编写了代码。但是程序在实际运行之前不会知道它,因为最终委托是在启动时构建的。