c# - 如何在 ASP.NET Core 中使用 IApplicationBuilder 中间件重载

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

ASP.NET Core 为 app.Use() 方法提供了两个重载。通常我们只使用一个重载,即

app.Use(Func<HttpContext,Func<Task>, Task> middleware)

用作

app.Use(async (context, next) => {
    await context.Response.WriteAsync("1st middleware <br/>");
    await next.Invoke();
});

我想使用的另一个重载是

app.Use(Func<RequestDelegate,RequestDelegate> middleware)

我找不到如何使用此重载的示例。任何想法都会很棒。

最佳答案

Func<RequestDelegate, RequestDelegate>是一个委托(delegate),它接受一个委托(delegate)并返回一个委托(delegate)。您可以将它与此 lambda 表达式一起使用:

app.Use(next => async context => 
{
    await context.Response.WriteAsync("Hello, World!");
    await next(context);
}

关于c# - 如何在 ASP.NET Core 中使用 IApplicationBuilder 中间件重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42898530/

相关文章:

c# - 无法从 Azure Web App 将日志写入 LogEntries

ASP.NET Core 以单一形式使用两个模型

c# - ASP.NET 5 : Access-Control-Allow-Origin in response

javascript - 将 Nest.js 应用程序导入为简单的 Express 中间件

c# - 如何保证 CosmosDB 数据与 ServiceBus 保持同步,不被死信消息覆盖

c# - 如果 API 速率限制超过使用 WebApiThrottle - C# Web API,则阻止 API 请求 5 分钟

c# - ASP.NET Core - 将自定义属性添加到 HttpRequest

go - Gin 和中间件

c# - 验证文本框是否为空且输入了数字

asp.net-mvc - 在 ASP.NET Core 1.0 中发布后修改 appsettings.Production.json 文件?