c# - Net Core app.UseMiddleware<T>() 和 app.Use(context, next) 之间的区别

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

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

app.UseCustomMiddleware()

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

最佳答案

link ,您会发现“app.Run 委托(delegate)不接收 next 参数。第一个 Run 委托(delegate)始终是终端并终止管道”

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

app.UseMiddleWare(),中间件一般封装在一个类中,这样你就可以复用中间件,但是对于app.Use(),你把代码直接在 Configure( IApplicationBuilder ) 中,因此您不能重复使用它。

关于c# - Net Core app.UseMiddleware<T>() 和 app.Use(context, next) 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62447516/

相关文章:

c# - 为 Task<T> 返回默认值或 null

c# - AutoMapper - 展平/展平列表

docker - Visual Studio 生成的 Dockerfile 不适用于手动 docker build

c# - 在 C# 程序中无法连接到使用 Docker 启动的 RabbitMQ(使用 RabbitMQ.Client)

c# - 如何将参数传递给 NSAction?

c# - 从大字符串中删除数字时出现性能问题

c# - 如何在 ASP.NET MVC 3 中限制上传的文件大小并在超出时很好地弹出 ModelState 并显示适当的错误?

file - 如何读取我的 ASP.NET Core 项目中的本地文件?

dependency-injection - 如何在多项目解决方案中使用 .net 核心依赖注入(inject)?

c# - 在 Visual Studio 中针对多个配置运行单个测试