在ASP.NET Core中,ApplicationBuilder的Use和Run方法都是在配置请求处理管道时使用,但它们之间存在关键的区别:
1.Use方法:
Use方法用于向请求处理管道添加中间件组件。它接受一个或多个委托作为参数,这些委托会在请求处理过程中按顺序执行。每个Use调用都会链接到管道中,允许当前中间件执行后调用管道中的下一个中间件。这意味着Use中间件可以决定是否将请求传递给管道中的下一个组件,如果调用了next委托,则控制权会传递给链中的下一个中间件;如果不调用,则请求处理可能在此处终止或被短路。
2.Run方法:
Run方法同样用于添加终端处理逻辑到请求管道,但是它标志着管道配置的结束。与Use不同,Run后面不应再有其他中间件调用,因为它不接收代表下一个中间件的next委托。当请求达到Run配置的处理逻辑时,它将被执行,且不会再有后续的中间件被调用。这意味着Run通常是管道中的最后一个操作,用于直接处理请求并生成响应,之后请求处理流程即完成。
总结来说,Use用于插入可链接的中间件组件,支持请求在多个处理步骤间流动,而Run用于定义管道的末端处理逻辑,执行后不再有后续的中间件调用。在实际应用中,通常先使用一系列Use方法添加各种中间件,最后使用一个Run方法来定义请求处理的最终出口。
Application builder的use和run法有什么区别?
于 2024-07-02 17:12:19 首次发布