自定义 ASP.NET Core 中间件
ASP.NET Core 中间件实现原理及用法解说
Middleware Class
public class CustomMiddleware
{
private readonly RequestDelegate _next;
public CustomMiddleware(RequestDelegate next)
{
if (next == null)
{
throw new ArgumentNullException(nameof(next));
}
_next = next;
}
public async Task Invoke(HttpContext context)
{
//下一个中间件执行之前的逻辑处理
await _next(context); //执行下一个中间件(也可不执行)
//下一个中间件执行之后的逻辑处理
}
}
//app.UseMiddleware<CustomMiddleware>();
中间件的总结
- 通过use,run,map,middleware class四种方法使用
- 使用多个中间件时,需注意中间件的顺序
- 在设计中间件时,请遵循“责任分离”原则,即一个中间件只对“单一责任”进行处理,如验证用户、授权等。
- 如果对response body做了修改后,请不要再执行下一个中间件