namespace Dpz.Core.Entity.Base;
public class ResponseResult
{
/// <summary>
/// 是否成功
/// </summary>
public bool Success { get; set; }
/// <summary>
/// 消息
/// </summary>
public string? Message { get; set; }
/// <summary>
/// 参数
/// </summary>
public object?[]? Arguments { get; set; }
/// <summary>
/// 状态码
/// </summary>
public int Code { get; set; }
public static ResponseResult Ok() => new() { Success = true, Message = "操作成功" };
public static ResponseResult Ok(string? message) => new() { Success = true, Message = message };
public static ResponseResult Fail(string? message, int code = 1) =>
new()
{
Success = false,
Message = message,
Code = code,
};
}
public class ResponseResult<T> : ResponseResult
{
public T? Data { get; set; }
public ResponseResult<T> WithOk(T? data)
{
Data = data;
Success = true;
return this;
}
public ResponseResult<T> WithFail(string message, int code = 1)
{
Success = false;
Message = message;
Code = code;
Data = default;
return this;
}
public static ResponseResult<T> Ok(T? data) => new() { Success = true, Data = data };
public static ResponseResult<T> Ok(T? data, string? message) =>
new()
{
Success = true,
Data = data,
Message = message,
};
public static new ResponseResult<T> Fail(string? message, int code = 1) =>
new()
{
Success = false,
Message = message,
Code = code,
};
}
⚠⚠ 以下内容为AI分析的结果,请根据实际情况进行判断。
代码解释
这是一个用于封装API响应结果的通用类库,位于 Dpz.Core.Entity.Base 命名空间下。它包含两个主要类:
1. ResponseResult 类(基础响应类)
属性说明:
Success: 布尔值,表示操作是否成功Message: 可空字符串,存储响应消息(如成功提示或错误信息)Arguments: 可空对象数组,用于存储额外的参数信息Code: 整数,表示状态码(通常 0 表示成功,非 0 表示各种错误)
静态工厂方法:
// 创建成功响应,默认消息为"操作成功"
Ok()
// 创建成功响应,自定义消息
Ok(string? message)
// 创建失败响应,自定义消息和状态码(默认为1)
Fail(string? message, int code = 1)
2. ResponseResult<T> 类(泛型响应类)
继承自 ResponseResult,增加了数据承载能力。
额外属性:
Data: 泛型类型T,用于携带具体的业务数据
实例方法(链式调用):
// 设置成功状态并返回数据
WithOk(T? data)
// 设置失败状态
WithFail(string message, int code = 1)
静态工厂方法:
// 创建成功响应并携带数据
Ok(T? data)
// 创建成功响应,携带数据和自定义消息
Ok(T? data, string? message)
// 创建失败响应(使用 new 关键字隐藏基类的 Fail 方法)
Fail(string? message, int code = 1)
使用场景示例
// 简单成功响应
return ResponseResult.Ok();
// 带数据的成功响应
return ResponseResult<User>.Ok(userObject, "用户创建成功");
// 失败响应
return ResponseResult.Fail("用户不存在", 404);
// 链式调用
return new ResponseResult<Order>().WithOk(orderData);
设计优点
- 统一的响应格式:规范化API返回结构
- 泛型支持:灵活承载不同类型的数据
- 链式调用:支持流畅的编程风格
- 工厂方法:简化对象创建过程
- 可扩展性:可通过继承扩展更多功能
这是一个典型的 Result Pattern(结果模式) 实现,常用于Web API开发中。
AI 正在分析代码…
评论加载中...