.NET Core中使用结果过滤器ResultFilter统一结果返回封装
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET Core中使用结果过滤器ResultFilter统一结果返回封装相关的知识,希望对你有一定的参考价值。
介绍
实现需要继承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生态圈越来越好!
以上是关于.NET Core中使用结果过滤器ResultFilter统一结果返回封装的主要内容,如果未能解决你的问题,请参考以下文章