core3.1的中间件有点像前端express,koa,connect的用法比较统一好理解用法大概有如下几种方式
以下的代码都是在Startup的Configure函数中
一:中断式中间件,直接停止了流程。
app.Run(context => context.Response.WriteAsync("后续代码不会在执行了!"));
二:Use中间件第一种用法,返回RequestDelegate
app.Use(next =>
{
Console.WriteLine("This is middleware 1");
return new RequestDelegate(
async context =>
{
// context.Response.OnStarting(state =>
// {
// var httpContext = (HttpContext)state;
// httpContext.Response.Headers.Add("middleware", "12345");
// return Task.CompletedTask;
// }, context);
await context.Response.WriteAsync("This is Hello World 1 start");
await next.Invoke(context);
await context.Response.WriteAsync("This is Hello World 1 end");
});
});
app.Use(next =>
{
Console.WriteLine("This is middleware 1.5");
return new RequestDelegate(
async context =>
{
await context.Response.