using System; using System.ComponentModel; using System.Security.Authentication; namespace Quiz.Models { /// <summary> /// 业务操作结果信息类,对操作结果进行封装 /// </summary> public class OperationResult : OperationResult<object> { #region 构造函数 /// <summary> /// 初始化一个<see cref="OperationResult"/>类型的新实例 /// </summary> public OperationResult(OperationResultType status) : this(status, null, null) { } /// <summary> /// 初始化一个<see cref="OperationResult"/>类型的新实例 /// </summary> public OperationResult(OperationResultType status, object message) : this(status, message, null) { } /// <summary> /// 初始化一个<see cref="OperationResult"/>类型的新实例 /// </summary> public OperationResult(OperationResultType status, object message, object data) : base(status, message, data) { } #endregion } /// <summary> /// 泛型版本的业务操作结果信息类,对操作结果进行封装 /// </summary> /// <typeparam name="T">返回数据的类型</typeparam> public class OperationResult<T> { /// <summary> /// 初始化一个<see cref="OperationResult{T}"/>类型的新实例 /// </summary> public OperationResult(OperationResultType status) : this(status, null, default(T)) { } /// <summary> /// 初始化一个<see cref="OperationResult{T}"/>类型的新实例 /// </summary> public OperationResult(OperationResultType status, object message) : this(status, message, default(T)) { } /// <summary> /// 初始化一个<see cref="OperationResult{T}"/>类型的新实例 /// </summary> public OperationResult(OperationResultType status, object message, T data) { Status = status; Message = message; Data = data; } /// <summary> /// 获取或设置 操作结果类型 /// </summary> public OperationResultType Status { get; set; } /// <summary> /// 获取或设置 操作返回消息 /// </summary> public object Message { get; set; } /// <summary> /// 获取或设置 操作返回数据 /// </summary> public T Data { get; set; } } /// <summary> /// 表示业务操作结果的枚举 /// </summary> public enum OperationResultType { /// <summary> /// 操作引发错误,引发<see cref="Exception"/>异常 /// </summary> [Description("操作引发错误。")] Error = 0, /// <summary> /// 操作成功 /// </summary> [Description("操作成功。")] Success = 1, /// <summary> /// 无效操作,引发<see cref="InvalidOperationException"/>异常 /// </summary> [Description("无效操作。")] InvalidOperation = 2, /// <summary> /// 输入信息验证失败,引发<see cref="ArgumentException"/>, <see cref="FormatException"/>异常 /// </summary> [Description("输入信息验证失败。")] ValidError = 3, /// <summary> /// 无效认证,引发<see cref="AuthenticationException"/>异常 /// </summary> [Description("无效认证。")] InvalidAuthorize = 4, } }