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