117 lines
2.6 KiB
C#
117 lines
2.6 KiB
C#
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Serialization;
|
|
|
|
using System.Runtime.Serialization;
|
|
|
|
namespace LiveForum.Code.Base
|
|
{
|
|
/// <summary>
|
|
/// 接口和服务调用基础响应类
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
[DataContract]
|
|
[Serializable]
|
|
public record BaseResponse<T>
|
|
{
|
|
/// <summary>
|
|
/// 功能执行返回代码
|
|
/// </summary>
|
|
[DataMember]
|
|
public ResponseCode Code { get; set; }
|
|
|
|
/// <summary>
|
|
/// 消息
|
|
/// </summary>
|
|
[DataMember]
|
|
public string Message { get; set; }
|
|
|
|
/// <summary>
|
|
/// 数据
|
|
/// </summary>
|
|
[DataMember]
|
|
public T? Data { get; set; }
|
|
|
|
/// <summary>
|
|
/// 构造函数
|
|
/// </summary>
|
|
public BaseResponse()
|
|
{
|
|
|
|
Code = 0;
|
|
Message = "";
|
|
}
|
|
|
|
/// <summary>
|
|
/// 构造函数
|
|
/// </summary>
|
|
public BaseResponse(T? data = default(T))
|
|
{
|
|
Code = ResponseCode.Success;
|
|
|
|
Data = data;
|
|
|
|
}
|
|
/// <summary>
|
|
/// 构造函数
|
|
/// </summary>
|
|
public BaseResponse(string message, T? data = default(T))
|
|
{
|
|
Code = ResponseCode.Success;
|
|
Message = message;
|
|
Data = data;
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 构造函数
|
|
/// </summary>
|
|
public BaseResponse(ResponseCode code, string message = "", T? data = default(T))
|
|
{
|
|
Code = code;
|
|
Message = message;
|
|
Data = data;
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public override string ToString()
|
|
{
|
|
var settings = new JsonSerializerSettings
|
|
{
|
|
ContractResolver = new CamelCasePropertyNamesContractResolver()
|
|
};
|
|
return JsonConvert.SerializeObject(this, settings);
|
|
}
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 返回值是bool类型的响应类
|
|
/// </summary>
|
|
public record BaseResponseBool : BaseResponse<bool>
|
|
{
|
|
|
|
}
|
|
public record BaseResponseLong : BaseResponse<long>
|
|
{
|
|
|
|
}
|
|
public record BaseResponseInt : BaseResponse<int>
|
|
{
|
|
|
|
}
|
|
|
|
public record BaseResponseList<T> : BaseResponse<List<T>>
|
|
{
|
|
public BaseResponseList() { }
|
|
public BaseResponseList(List<T> data) : base(data) { }
|
|
|
|
public BaseResponseList(string message, List<T> data) : base(message, data) { }
|
|
|
|
public BaseResponseList(ResponseCode code, string message = "", List<T> data = null) : base(code, message, data) { }
|
|
}
|
|
|
|
}
|