如何在 ASP.NET Core 中使用 IApplicationBuilder 中间件重载
How to use IApplicationBuilder middleware overload in ASP.NET Core
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>
是委托,接受委托,returns接受委托。您可以将它与此 lambda 表达式一起使用:
app.Use(next => async context =>
{
await context.Response.WriteAsync("Hello, World!");
await next(context);
}
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>
是委托,接受委托,returns接受委托。您可以将它与此 lambda 表达式一起使用:
app.Use(next => async context =>
{
await context.Response.WriteAsync("Hello, World!");
await next(context);
}