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

时间:2017-03-20 08:06:42

标签: 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)

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

1 个答案:

答案 0 :(得分:4)

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

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