using System.Net; using XFEExtension.NetCore.ServerInteractive.Interfaces.Requester; namespace XFEExtension.NetCore.ServerInteractive.Models.RequesterModels; /// /// 客户端请求结果 /// /// public class ClientRequestResult : IRequestResult { /// 请求失败类别。 public ClientRequestFailureKind FailureKind { get; set; } /// 请求失败异常;成功时为 null。 public Exception? Exception { get; set; } /// public T? Result { get; set; } /// public HttpStatusCode StatusCode { get; set; } = HttpStatusCode.OK; /// public string Message { get; set; } = string.Empty; /// object? IRequestResultBase.Result { get => Result; set => Result = value is not null ? (T)value : default; } /// /// 转换为指定泛型 /// /// 指定泛型 /// public ClientRequestResult TryConvertTo() => new() { Message = Message, StatusCode = StatusCode, FailureKind = FailureKind, Exception = Exception, Result = Result is not null ? (TF)(object)Result : default }; } /// 客户端请求失败类别。 public enum ClientRequestFailureKind { None, Cancelled, Timeout, Transport, Protocol, Serialization, Application }