自定义 ASP.NET Core 中间件 ASP.NET Core 中间件实现原理及用法解说

Middleware Class

  1. public class CustomMiddleware
  2. {
  3. private readonly RequestDelegate _next;
  4. public CustomMiddleware(RequestDelegate next)
  5. {
  6. if (next == null)
  7. {
  8. throw new ArgumentNullException(nameof(next));
  9. }
  10. _next = next;
  11. }
  12. public async Task Invoke(HttpContext context)
  13. {
  14. //下一个中间件执行之前的逻辑处理
  15. await _next(context); //执行下一个中间件(也可不执行)
  16. //下一个中间件执行之后的逻辑处理
  17. }
  18. }
  19. //app.UseMiddleware<CustomMiddleware>();

中间件的总结

  1. 通过use,run,map,middleware class四种方法使用
  2. 使用多个中间件时,需注意中间件的顺序
  3. 在设计中间件时,请遵循“责任分离”原则,即一个中间件只对“单一责任”进行处理,如验证用户、授权等。
  4. 如果对response body做了修改后,请不要再执行下一个中间件