執行地圖使用

終止鏈。此後不會執行其他中介軟體方法。應該放在任何管道的盡頭。

app.Run(async context =>
{
    await context.Response.WriteAsync("Hello from " + _environment);
});

使用

在下一個委託之前和之後執行操作。

app.Use(async (context, next) =>
{
    //action before next delegate
    await next.Invoke(); //call next middleware
    //action after called middleware
});

Ilustration 的工作原理: StackOverflow 文件

MapWhen

啟用分支管道。如果滿足條件,則執行指定的中介軟體。

private static void HandleBranch(IApplicationBuilder app)
{
    app.Run(async context =>
    {
        await context.Response.WriteAsync("Condition is fulfilled");
    });
}

public void ConfigureMapWhen(IApplicationBuilder app)
{
    app.MapWhen(context => {
        return context.Request.Query.ContainsKey("somekey");
    }, HandleBranch);
}

地圖

與 MapWhen 相似。如果使用者請求的路徑等於引數中提供的路徑,則執行中介軟體。

private static void HandleMapTest(IApplicationBuilder app)
{
    app.Run(async context =>
    {
        await context.Response.WriteAsync("Map Test Successful");
    });
}

public void ConfigureMapping(IApplicationBuilder app)
{
    app.Map("/maptest", HandleMapTest);

}

基於 ASP.net 核心文件