介绍
实现需要继承IResultFilter或者 IAsyncResultFilter。
为了方便开发,简化代码,也为了与前端方便对接,需要对接口服务返回结果进行统一处理
定义统一返回的结果类
我们需要定义一个统一返回结果泛型类ApiResult
public class ApiResult<T>{public int Code { get; set; }public string Message { get; set; }public T Data { get; set; }}
使用
新建ResultFilter继承IResultFilter或者IAsyncResultFilter
public class ResultFilter : IResultFilter{public void OnResultExecuted(ResultExecutedContext context){//返回结果之后}public void OnResultExecuting(ResultExecutingContext context){var result = new ApiResult<IActionResult>{Code = 1,Message = "",Data = context.Result};//返回结果之前context.Result = new ContentResult{// 返回状态码设置为200,表示成功StatusCode = (int)HttpStatusCode.OK,// 设置返回格式ContentType = "application/json;charset=utf-8",Content = JsonConvert.SerializeObject(result)};}}
注册过滤器
注册过滤器有两种方式,一种是全局注册,另一种是局部注册!
局部注册
局部注册可以体现在类上或者方法上
全局注册
全局注册在startup类里面的ConfigureServices方法中services.AddControllers(o=>o.Filters.Add( typeof(ResultFilter )));
查看返回数据
eg:当然还有很多方法实现.NET Core 返回结果统一封装。
最后我希望所有neter关注前沿技术,不要固步自封。
最后大家如果喜欢我的文章,还麻烦给个关注, 希望net生态圈越来越好!