中间件
简述.net core
中间件?
A:中间件是在管道中处理请求的组件,处理完后可以传递给下一个组件。通过在Startup
类的Configure
方法中使用Use
来使用中间件并可以调整顺序。.NET CORE
中使用RequestDelegate
来构建管道模型,所以自定义的中间件需要根据约定来实现,注意有三点:
- 中间件内要定义一个只读的
RequestDelegate
类型的变量作为调用下一个中间件的委托。 - 构造函数中要定义
RequestDelegate
类型的参数并赋给类里的变量,IOC
会将请求注入进来。 - 定义一个
Task
类型的名为Invoke
的函数,参数为HttpContext
,在其中写中间件的逻辑,并在最后记得返回类中的RequestDelegate
对象,传递HttpContext
。.NET CORE会自动执行Invoke
方法。
public class RequestCultureMiddleware { private readonly RequestDelegate _next; public RequestCultureMiddleware(RequestDelegate next) { _next = next; } public Task Invoke(HttpContext context) { //Todo...在这里可以对请求的上下文做操作如验证之类 //调用管道中的下一个中间件,向下传递 return this._next(context); } }