概述
https://www.cnblogs.com/RainingNight/p/middleware-in-asp-net-core.html
public class MiddlewareTest
{
private readonly RequestDelegate next;
public MiddlewareTest(RequestDelegate next)
{
this.next = next;
}
public async Task Invoke(HttpContext context /* other dependencies */)//此方法自动进来
{
try
{
await next(context);//调用委托,其实就是当前的request 的请求调用完成
}
catch (Exception ex)//如果在整个过程中出现错误
{
await HandleExceptionAsync(context, ex);
}
}
private static Task HandleExceptionAsync(HttpContext context, Exception ex)
{
var code = HttpStatusCode.InternalServerError; // 500 if unexpected
code = HttpStatusCode.BadRequest;
var result = JsonConvert.SerializeObject(new { error = ex.Message });
context.Response.ContentType = "application/json";
context.Response.StatusCode = (int)code;
return context.Response.WriteAsync(result);
}
}
我是认为中间件是个拦截器,在整个请求过程中都会调用,如果写在调用委托之前,可以做一些401判断之类的
最后
以上就是畅快豌豆为你收集整理的.net core 中间件的全部内容,希望文章能够帮你解决.net core 中间件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复