【问题标题】:Net Core Difference between app.UseMiddleware<T>() and app.Use(context, next)app.UseMiddleware<T>() 和 app.Use(context, next) 之间的网络核心区别
【发布时间】:2020-10-08 08:45:39
【问题描述】:

使用TMiddleware的IApplicationBuilder和IApplicationBuilder.Use()有什么区别吗?在机器人案例中,我可以编写优雅的扩展方法并最终使用

app.UseCustomMiddleware()

但我不知道这两种方法的好处。

【问题讨论】:

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


    【解决方案1】:

    link 中,您可以找到“app.Run 代表没有收到next 参数。第一个Run 代表始终是终端并终止管道。”

    并且在link中,app.UseMiddleWare()可以接收到下一个参数。

    app.UseMiddleWare(),中间件一般都封装在一个类中,这样可以复用中间件,但是app.Use(),直接把代码放在Configure( IApplicationBuilder )里面,不能复用。

    【讨论】:

    • 您始终可以使用接收下一个参数的 app.Use(context, next)。我问 app.Use 和 app.UseMiddleware 有什么区别(我编辑了帖子)
    • 您还可以通过为 IApplicationBuilder 定义扩展方法来重用此中间件。他们之间有什么好处吗?
    • link里面写的是The following extension method exposes the middleware through IApplicationBuilder:,在方法里面可以看到代码return builder.UseMiddleware&lt;RequestCultureMiddleware&gt;();,所以本质上没有区别。
    猜你喜欢
    • 1970-01-01
    • 2021-09-28
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 2015-11-15
    相关资源
    最近更新 更多