C#面试题更新 2026-08-05

请解释一下 .NET Core 中间件的定义,并阐述它的工作原理。

技术原理C#.NET Core

考察说明

考查对 .NET Core 请求管道中中间件机制的理解。

回答思路

  1. 【回答框架 1】中间件是组装到请求管道中的软件组件,用于处理请求和响应。每个中间件可以决定是否将请求传递给下一个组件,以及在管道中执行前后操作。
  2. 【回答框架 2】工作原理基于委托链。管道由多个中间件组成,每个中间件接收一个 RequestDelegate 参数,该委托指向下一个中间件。通过调用 next(context) 或 next.Invoke(context) 将请求传递下去。
  3. 【回答框架 3】中间件的执行顺序遵循注册顺序,但响应回传顺序相反。中间件可以在调用 next 之前处理请求,也可以在调用 next 之后处理响应,从而实现横切关注点的处理。
  4. 【回答框架 4】中间件的注册通过 Use、Run 和 Map 扩展方法进行。Use 可以串联多个中间件,Run 是终端中间件,Map 则通过路径匹配分支管道。
  5. 【关键点 1】中间件是请求管道的组成单元,每个中间件可处理请求和响应。
  6. 【关键点 2】管道采用委托链,next 委托传递请求至下一个中间件。
  7. 【关键点 3】执行顺序与注册顺序一致,响应处理按相反顺序执行。
  8. 【易错点 1】不要忽视中间件顺序的重要性,错误顺序可能导致认证失效。
  9. 【易错点 2】不要在中间件中随意短路管道,除非是终端中间件。
  10. 【易错点 3】避免在中间件中执行耗时操作,可能阻塞请求线程。