在过滤管道之前
中间件就是委托对象,中间件执行顺序是按照注册顺序执行。
1.定义中间件类,并在构造方法必须包含下一个中间件的引用对象。
private RequestDelegate _next;
public SingMiddleWares(RequestDelegate next)
{
_next = next;
}
实现中间件
public async Task InvokeAsync(HttpContext context)
{
//抛给下一个中间件
//await _next(context);
//或者报错
// await context.Response.WriteAsync("error");
}
中间件注册
Startup.cs->Configure
app.UseMiddleware<SingMiddleWares>();
比较简单的中间件注册:
app.Use(next => {
return context => {
return Task.CompletedTask;
};
});
构建最后的中间件注册:
app.Run(m =>
{
return Task.CompletedTask;
});