Run
Terminates chain. No other middleware method will run after this. Should be placed at the end of any pipeline.
app.Run(async context =>
{
await context.Response.WriteAsync("Hello from " + _environment);
});
Use
Performs action before and after next delegate.
app.Use(async (context, next) =>
{
//action before next delegate
await next.Invoke(); //call next middleware
//action after called middleware
});
MapWhen
Enables branching pipeline. Runs specified middleware if condition is met.
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);
}
Map
Similar to MapWhen. Runs middleware if path requested by user equals path provided in parameter.
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);
}
Based on ASP.net Core Docs