中间件遵循显示依赖原则,并在其构造函数中暴露所有依赖项。中间件能够利用UseMiddleware扩展方法的优势,直接通过它们的构造函数注入服务。依赖注入服务是自动完成填充的。
ASP.NET Core约定中间件类必须包括以下内容:
1、具有类型为RequestDelegate参数的公共构造函数。
2、必须有名为Invoke或InvokeAsync的公共方法,此方法必须满足两个条件:方法返回类型是Task、方法的第一个参数必须是HttpContext类型。
自定义一个,需要定义一个类
调用的action之后可以用 context.Response.OnCompleted(() => {} 监听
创建一个扩展方法,对IApplicationBuilder进行扩展
最后在Startup类中使用自定义中间件
app.UseRequestHttpLog();