2017-03-20 42 views
1

ASP.NET Core为app.Use()方法提供了两个重载。通常我们只使用一个重载是如何在ASP.NET Core中使用IApplicationBuilder中间件重载

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) 

我找不到的例子我们如何使用这种过载。任何想法都会很棒。

回答

2

Func<RequestDelegate, RequestDelegate>是一个lambda,它接受一个lambda返回一个lambda。你可以这样使用它:

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