中间件
简述.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);
}
}
浙公网安备 33010602011771号