Application builder的use和run法有什么区别?


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值