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)
我找不到如何使用此重载的示例。任何想法都会很棒。
答案 0 :(得分:4)
Func<RequestDelegate, RequestDelegate>
是一个委托,它接受一个委托并返回一个委托。您可以将它与此lambda表达式一起使用:
app.Use(next => async context =>
{
await context.Response.WriteAsync("Hello, World!");
await next(context);
}