using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MECF.Framework.RT.Core.IoProviders.Common { /******************************************************************************* * * 用户返回多个结果数据的一个类,允许返回操作结果,文本信息,错误代号,等等 * * Used to the return result class in the synchronize communication and communication for industrial Ethernet * * 时间:2017年11月20日 11:43:57 * 更新:废除原先的2个结果派生类,新增10个泛型派生类,来满足绝大多数的场景使用 * * 时间:2018年3月11日 22:08:08 * 更新:新增一些静态方法来方便的获取带有参数的成功对象,新增快速复制错误信息的方法 * * 时间:2018年8月23日 12:19:36 * 更新:新增两个不同的结果对象构造方法 * *******************************************************************************/ /// /// 操作结果的类,只带有成功标志和错误信息 -> The class that operates the result, with only success flags and error messages /// /// /// 当 为 True 时,忽略 的值 /// public class OperateResult { #region Constructor /// /// 实例化一个默认的结果对象 /// public OperateResult() { } /// /// 使用指定的消息实例化一个默认的结果对象 /// /// 错误消息 public OperateResult( string msg ) { this.Message = msg; } /// /// 使用错误代码,消息文本来实例化对象 /// /// 错误代码 /// 错误消息 public OperateResult( int err, string msg ) { this.ErrorCode = err; this.Message = msg; } #endregion /// /// 指示本次访问是否成功 /// public bool IsSuccess { get; set; } /// /// 具体的错误描述 /// public string Message { get; set; } = StringResources.Language.UnknownError; /// /// 具体的错误代码 /// public int ErrorCode { get; set; } = 10000; /// /// 获取错误代号及文本描述 /// /// 包含错误码及错误消息 public string ToMessageShowString() { return $"{StringResources.Language.ErrorCode}:{ErrorCode}{Environment.NewLine}{StringResources.Language.TextDescription}:{Message}"; } /// /// 从另一个结果类中拷贝错误信息 /// /// 支持结果类及派生类 /// 结果类及派生类的对象 public void CopyErrorFromOther(TResult result) where TResult : OperateResult { if (result != null) { ErrorCode = result.ErrorCode; Message = result.Message; } } #region Static Method /***************************************************************************************************** * * 主要是方便获取到一些特殊状态的结果对象 * ******************************************************************************************************/ /// /// 创建并返回一个失败的结果对象,该对象复制另一个结果对象的错误信息 /// /// 目标数据类型 /// 之前的结果对象 /// 带默认泛型对象的失败结果类 public static OperateResult CreateFailedResult( OperateResult result ) { return new OperateResult( ) { ErrorCode = result.ErrorCode, Message = result.Message, }; } /// /// 创建并返回一个失败的结果对象,该对象复制另一个结果对象的错误信息 /// /// 目标数据类型一 /// 目标数据类型二 /// 之前的结果对象 /// 带默认泛型对象的失败结果类 public static OperateResult CreateFailedResult( OperateResult result ) { return new OperateResult( ) { ErrorCode = result.ErrorCode, Message = result.Message, }; } /// /// 创建并返回一个失败的结果对象,该对象复制另一个结果对象的错误信息 /// /// 目标数据类型一 /// 目标数据类型二 /// 目标数据类型三 /// 之前的结果对象 /// 带默认泛型对象的失败结果类 public static OperateResult CreateFailedResult( OperateResult result ) { return new OperateResult( ) { ErrorCode = result.ErrorCode, Message = result.Message, }; } /// /// 创建并返回一个失败的结果对象,该对象复制另一个结果对象的错误信息 /// /// 目标数据类型一 /// 目标数据类型二 /// 目标数据类型三 /// 目标数据类型四 /// 之前的结果对象 /// 带默认泛型对象的失败结果类 public static OperateResult CreateFailedResult( OperateResult result ) { return new OperateResult( ) { ErrorCode = result.ErrorCode, Message = result.Message, }; } /// /// 创建并返回一个失败的结果对象,该对象复制另一个结果对象的错误信息 /// /// 目标数据类型一 /// 目标数据类型二 /// 目标数据类型三 /// 目标数据类型四 /// 目标数据类型五 /// 之前的结果对象 /// 带默认泛型对象的失败结果类 public static OperateResult CreateFailedResult( OperateResult result ) { return new OperateResult( ) { ErrorCode = result.ErrorCode, Message = result.Message, }; } /// /// 创建并返回一个失败的结果对象,该对象复制另一个结果对象的错误信息 /// /// 目标数据类型一 /// 目标数据类型二 /// 目标数据类型三 /// 目标数据类型四 /// 目标数据类型五 /// 目标数据类型六 /// 之前的结果对象 /// 带默认泛型对象的失败结果类 public static OperateResult CreateFailedResult( OperateResult result ) { return new OperateResult( ) { ErrorCode = result.ErrorCode, Message = result.Message, }; } /// /// 创建并返回一个失败的结果对象,该对象复制另一个结果对象的错误信息 /// /// 目标数据类型一 /// 目标数据类型二 /// 目标数据类型三 /// 目标数据类型四 /// 目标数据类型五 /// 目标数据类型六 /// 目标数据类型七 /// 之前的结果对象 /// 带默认泛型对象的失败结果类 public static OperateResult CreateFailedResult( OperateResult result ) { return new OperateResult( ) { ErrorCode = result.ErrorCode, Message = result.Message, }; } /// /// 创建并返回一个失败的结果对象,该对象复制另一个结果对象的错误信息 /// /// 目标数据类型一 /// 目标数据类型二 /// 目标数据类型三 /// 目标数据类型四 /// 目标数据类型五 /// 目标数据类型六 /// 目标数据类型七 /// 目标数据类型八 /// 之前的结果对象 /// 带默认泛型对象的失败结果类 public static OperateResult CreateFailedResult( OperateResult result ) { return new OperateResult( ) { ErrorCode = result.ErrorCode, Message = result.Message, }; } /// /// 创建并返回一个失败的结果对象,该对象复制另一个结果对象的错误信息 /// /// 目标数据类型一 /// 目标数据类型二 /// 目标数据类型三 /// 目标数据类型四 /// 目标数据类型五 /// 目标数据类型六 /// 目标数据类型七 /// 目标数据类型八 /// 目标数据类型九 /// 之前的结果对象 /// 带默认泛型对象的失败结果类 public static OperateResult CreateFailedResult( OperateResult result ) { return new OperateResult( ) { ErrorCode = result.ErrorCode, Message = result.Message, }; } /// /// 创建并返回一个失败的结果对象,该对象复制另一个结果对象的错误信息 /// /// 目标数据类型一 /// 目标数据类型二 /// 目标数据类型三 /// 目标数据类型四 /// 目标数据类型五 /// 目标数据类型六 /// 目标数据类型七 /// 目标数据类型八 /// 目标数据类型九 /// 目标数据类型十 /// 之前的结果对象 /// 带默认泛型对象的失败结果类 public static OperateResult CreateFailedResult( OperateResult result ) { return new OperateResult( ) { ErrorCode = result.ErrorCode, Message = result.Message, }; } /// /// 创建并返回一个成功的结果对象 /// /// 成功的结果对象 public static OperateResult CreateSuccessResult() { return new OperateResult() { IsSuccess = true, ErrorCode = 0, Message = StringResources.Language.SuccessText, }; } /// /// 创建并返回一个成功的结果对象,并带有一个参数对象 /// /// 参数类型 /// 类型的值对象 /// 成功的结果对象 public static OperateResult CreateSuccessResult(T value) { return new OperateResult() { IsSuccess = true, ErrorCode = 0, Message = StringResources.Language.SuccessText, Content = value }; } /// /// 创建并返回一个成功的结果对象,并带有两个参数对象 /// /// 第一个参数类型 /// 第二个参数类型 /// 类型一对象 /// 类型二对象 /// 成的结果对象 public static OperateResult CreateSuccessResult(T1 value1, T2 value2) { return new OperateResult() { IsSuccess = true, ErrorCode = 0, Message = StringResources.Language.SuccessText, Content1 = value1, Content2 = value2, }; } /// /// 创建并返回一个成功的结果对象,并带有三个参数对象 /// /// 第一个参数类型 /// 第二个参数类型 /// 第三个参数类型 /// 类型一对象 /// 类型二对象 /// 类型三对象 /// 成的结果对象 public static OperateResult CreateSuccessResult(T1 value1, T2 value2, T3 value3) { return new OperateResult() { IsSuccess = true, ErrorCode = 0, Message = StringResources.Language.SuccessText, Content1 = value1, Content2 = value2, Content3 = value3, }; } /// /// 创建并返回一个成功的结果对象,并带有四个参数对象 /// /// 第一个参数类型 /// 第二个参数类型 /// 第三个参数类型 /// 第四个参数类型 /// 类型一对象 /// 类型二对象 /// 类型三对象 /// 类型四对象 /// 成的结果对象 public static OperateResult CreateSuccessResult( T1 value1, T2 value2, T3 value3, T4 value4 ) { return new OperateResult( ) { IsSuccess = true, ErrorCode = 0, Message = StringResources.Language.SuccessText, Content1 = value1, Content2 = value2, Content3 = value3, Content4 = value4, }; } /// /// 创建并返回一个成功的结果对象,并带有五个参数对象 /// /// 第一个参数类型 /// 第二个参数类型 /// 第三个参数类型 /// 第四个参数类型 /// 第五个参数类型 /// 类型一对象 /// 类型二对象 /// 类型三对象 /// 类型四对象 /// 类型五对象 /// 成的结果对象 public static OperateResult CreateSuccessResult( T1 value1, T2 value2, T3 value3, T4 value4, T5 value5 ) { return new OperateResult( ) { IsSuccess = true, ErrorCode = 0, Message = StringResources.Language.SuccessText, Content1 = value1, Content2 = value2, Content3 = value3, Content4 = value4, Content5 = value5, }; } /// /// 创建并返回一个成功的结果对象,并带有六个参数对象 /// /// 第一个参数类型 /// 第二个参数类型 /// 第三个参数类型 /// 第四个参数类型 /// 第五个参数类型 /// 第六个参数类型 /// 类型一对象 /// 类型二对象 /// 类型三对象 /// 类型四对象 /// 类型五对象 /// 类型六对象 /// 成的结果对象 public static OperateResult CreateSuccessResult( T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6 ) { return new OperateResult( ) { IsSuccess = true, ErrorCode = 0, Message = StringResources.Language.SuccessText, Content1 = value1, Content2 = value2, Content3 = value3, Content4 = value4, Content5 = value5, Content6 = value6, }; } /// /// 创建并返回一个成功的结果对象,并带有七个参数对象 /// /// 第一个参数类型 /// 第二个参数类型 /// 第三个参数类型 /// 第四个参数类型 /// 第五个参数类型 /// 第六个参数类型 /// 第七个参数类型 /// 类型一对象 /// 类型二对象 /// 类型三对象 /// 类型四对象 /// 类型五对象 /// 类型六对象 /// 类型七对象 /// 成的结果对象 public static OperateResult CreateSuccessResult( T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7 ) { return new OperateResult( ) { IsSuccess = true, ErrorCode = 0, Message = StringResources.Language.SuccessText, Content1 = value1, Content2 = value2, Content3 = value3, Content4 = value4, Content5 = value5, Content6 = value6, Content7 = value7, }; } /// /// 创建并返回一个成功的结果对象,并带有八个参数对象 /// /// 第一个参数类型 /// 第二个参数类型 /// 第三个参数类型 /// 第四个参数类型 /// 第五个参数类型 /// 第六个参数类型 /// 第七个参数类型 /// 第八个参数类型 /// 类型一对象 /// 类型二对象 /// 类型三对象 /// 类型四对象 /// 类型五对象 /// 类型六对象 /// 类型七对象 /// 类型八对象 /// 成的结果对象 public static OperateResult CreateSuccessResult( T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8 ) { return new OperateResult( ) { IsSuccess = true, ErrorCode = 0, Message = StringResources.Language.SuccessText, Content1 = value1, Content2 = value2, Content3 = value3, Content4 = value4, Content5 = value5, Content6 = value6, Content7 = value7, Content8 = value8, }; } /// /// 创建并返回一个成功的结果对象,并带有九个参数对象 /// /// 第一个参数类型 /// 第二个参数类型 /// 第三个参数类型 /// 第四个参数类型 /// 第五个参数类型 /// 第六个参数类型 /// 第七个参数类型 /// 第八个参数类型 /// 第九个参数类型 /// 类型一对象 /// 类型二对象 /// 类型三对象 /// 类型四对象 /// 类型五对象 /// 类型六对象 /// 类型七对象 /// 类型八对象 /// 类型九对象 /// 成的结果对象 public static OperateResult CreateSuccessResult( T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9 ) { return new OperateResult( ) { IsSuccess = true, ErrorCode = 0, Message = StringResources.Language.SuccessText, Content1 = value1, Content2 = value2, Content3 = value3, Content4 = value4, Content5 = value5, Content6 = value6, Content7 = value7, Content8 = value8, Content9 = value9, }; } /// /// 创建并返回一个成功的结果对象,并带有十个参数对象 /// /// 第一个参数类型 /// 第二个参数类型 /// 第三个参数类型 /// 第四个参数类型 /// 第五个参数类型 /// 第六个参数类型 /// 第七个参数类型 /// 第八个参数类型 /// 第九个参数类型 /// 第十个参数类型 /// 类型一对象 /// 类型二对象 /// 类型三对象 /// 类型四对象 /// 类型五对象 /// 类型六对象 /// 类型七对象 /// 类型八对象 /// 类型九对象 /// 类型十对象 /// 成的结果对象 public static OperateResult CreateSuccessResult( T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10 ) { return new OperateResult( ) { IsSuccess = true, ErrorCode = 0, Message = StringResources.Language.SuccessText, Content1 = value1, Content2 = value2, Content3 = value3, Content4 = value4, Content5 = value5, Content6 = value6, Content7 = value7, Content8 = value8, Content9 = value9, Content10 = value10, }; } #endregion } /// /// 操作结果的泛型类,允许带一个用户自定义的泛型对象,推荐使用这个类 /// /// 泛型类 public class OperateResult : OperateResult { #region Constructor /// /// 实例化一个默认的结果对象 /// public OperateResult( ) : base( ) { } /// /// 使用指定的消息实例化一个默认的结果对象 /// /// 错误消息 public OperateResult( string msg ) : base( msg ) { } /// /// 使用错误代码,消息文本来实例化对象 /// /// 错误代码 /// 错误消息 public OperateResult( int err, string msg ) : base( err, msg ) { } #endregion /// /// 用户自定义的泛型数据 /// public T Content { get; set; } } /// /// 操作结果的泛型类,允许带两个用户自定义的泛型对象,推荐使用这个类 /// /// 泛型类 /// 泛型类 public class OperateResult : OperateResult { #region Constructor /// /// 实例化一个默认的结果对象 /// public OperateResult( ) : base( ) { } /// /// 使用指定的消息实例化一个默认的结果对象 /// /// 错误消息 public OperateResult( string msg ) : base( msg ) { } /// /// 使用错误代码,消息文本来实例化对象 /// /// 错误代码 /// 错误消息 public OperateResult( int err, string msg ) : base( err, msg ) { } #endregion /// /// 用户自定义的泛型数据1 /// public T1 Content1 { get; set; } /// /// 用户自定义的泛型数据2 /// public T2 Content2 { get; set; } } /// /// 操作结果的泛型类,允许带三个用户自定义的泛型对象,推荐使用这个类 /// /// 泛型类 /// 泛型类 /// 泛型类 public class OperateResult : OperateResult { #region Constructor /// /// 实例化一个默认的结果对象 /// public OperateResult( ) : base( ) { } /// /// 使用指定的消息实例化一个默认的结果对象 /// /// 错误消息 public OperateResult( string msg ) : base( msg ) { } /// /// 使用错误代码,消息文本来实例化对象 /// /// 错误代码 /// 错误消息 public OperateResult( int err, string msg ) : base( err, msg ) { } #endregion /// /// 用户自定义的泛型数据1 /// public T1 Content1 { get; set; } /// /// 用户自定义的泛型数据2 /// public T2 Content2 { get; set; } /// /// 用户自定义的泛型数据3 /// public T3 Content3 { get; set; } } /// /// 操作结果的泛型类,允许带四个用户自定义的泛型对象,推荐使用这个类 /// /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 public class OperateResult : OperateResult { #region Constructor /// /// 实例化一个默认的结果对象 /// public OperateResult( ) : base( ) { } /// /// 使用指定的消息实例化一个默认的结果对象 /// /// 错误消息 public OperateResult( string msg ) : base( msg ) { } /// /// 使用错误代码,消息文本来实例化对象 /// /// 错误代码 /// 错误消息 public OperateResult( int err, string msg ) : base( err, msg ) { } #endregion /// /// 用户自定义的泛型数据1 /// public T1 Content1 { get; set; } /// /// 用户自定义的泛型数据2 /// public T2 Content2 { get; set; } /// /// 用户自定义的泛型数据3 /// public T3 Content3 { get; set; } /// /// 用户自定义的泛型数据4 /// public T4 Content4 { get; set; } } /// /// 操作结果的泛型类,允许带五个用户自定义的泛型对象,推荐使用这个类 /// /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 public class OperateResult : OperateResult { #region Constructor /// /// 实例化一个默认的结果对象 /// public OperateResult( ) : base( ) { } /// /// 使用指定的消息实例化一个默认的结果对象 /// /// 错误消息 public OperateResult( string msg ) : base( msg ) { } /// /// 使用错误代码,消息文本来实例化对象 /// /// 错误代码 /// 错误消息 public OperateResult( int err, string msg ) : base( err, msg ) { } #endregion /// /// 用户自定义的泛型数据1 /// public T1 Content1 { get; set; } /// /// 用户自定义的泛型数据2 /// public T2 Content2 { get; set; } /// /// 用户自定义的泛型数据3 /// public T3 Content3 { get; set; } /// /// 用户自定义的泛型数据4 /// public T4 Content4 { get; set; } /// /// 用户自定义的泛型数据5 /// public T5 Content5 { get; set; } } /// /// 操作结果的泛型类,允许带六个用户自定义的泛型对象,推荐使用这个类 /// /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 public class OperateResult : OperateResult { #region Constructor /// /// 实例化一个默认的结果对象 /// public OperateResult( ) : base( ) { } /// /// 使用指定的消息实例化一个默认的结果对象 /// /// 错误消息 public OperateResult( string msg ) : base( msg ) { } /// /// 使用错误代码,消息文本来实例化对象 /// /// 错误代码 /// 错误消息 public OperateResult( int err, string msg ) : base( err, msg ) { } #endregion /// /// 用户自定义的泛型数据1 /// public T1 Content1 { get; set; } /// /// 用户自定义的泛型数据2 /// public T2 Content2 { get; set; } /// /// 用户自定义的泛型数据3 /// public T3 Content3 { get; set; } /// /// 用户自定义的泛型数据4 /// public T4 Content4 { get; set; } /// /// 用户自定义的泛型数据5 /// public T5 Content5 { get; set; } /// /// 用户自定义的泛型数据5 /// public T6 Content6 { get; set; } } /// /// 操作结果的泛型类,允许带七个用户自定义的泛型对象,推荐使用这个类 /// /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 public class OperateResult : OperateResult { #region Constructor /// /// 实例化一个默认的结果对象 /// public OperateResult( ) : base( ) { } /// /// 使用指定的消息实例化一个默认的结果对象 /// /// 错误消息 public OperateResult( string msg ) : base( msg ) { } /// /// 使用错误代码,消息文本来实例化对象 /// /// 错误代码 /// 错误消息 public OperateResult( int err, string msg ) : base( err, msg ) { } #endregion /// /// 用户自定义的泛型数据1 /// public T1 Content1 { get; set; } /// /// 用户自定义的泛型数据2 /// public T2 Content2 { get; set; } /// /// 用户自定义的泛型数据3 /// public T3 Content3 { get; set; } /// /// 用户自定义的泛型数据4 /// public T4 Content4 { get; set; } /// /// 用户自定义的泛型数据5 /// public T5 Content5 { get; set; } /// /// 用户自定义的泛型数据6 /// public T6 Content6 { get; set; } /// /// 用户自定义的泛型数据7 /// public T7 Content7 { get; set; } } /// /// 操作结果的泛型类,允许带八个用户自定义的泛型对象,推荐使用这个类 /// /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 public class OperateResult : OperateResult { #region Constructor /// /// 实例化一个默认的结果对象 /// public OperateResult( ) : base( ) { } /// /// 使用指定的消息实例化一个默认的结果对象 /// /// 错误消息 public OperateResult( string msg ) : base( msg ) { } /// /// 使用错误代码,消息文本来实例化对象 /// /// 错误代码 /// 错误消息 public OperateResult( int err, string msg ) : base( err, msg ) { } #endregion /// /// 用户自定义的泛型数据1 /// public T1 Content1 { get; set; } /// /// 用户自定义的泛型数据2 /// public T2 Content2 { get; set; } /// /// 用户自定义的泛型数据3 /// public T3 Content3 { get; set; } /// /// 用户自定义的泛型数据4 /// public T4 Content4 { get; set; } /// /// 用户自定义的泛型数据5 /// public T5 Content5 { get; set; } /// /// 用户自定义的泛型数据6 /// public T6 Content6 { get; set; } /// /// 用户自定义的泛型数据7 /// public T7 Content7 { get; set; } /// /// 用户自定义的泛型数据8 /// public T8 Content8 { get; set; } } /// /// 操作结果的泛型类,允许带九个用户自定义的泛型对象,推荐使用这个类 /// /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 public class OperateResult : OperateResult { #region Constructor /// /// 实例化一个默认的结果对象 /// public OperateResult( ) : base( ) { } /// /// 使用指定的消息实例化一个默认的结果对象 /// /// 错误消息 public OperateResult( string msg ) : base( msg ) { } /// /// 使用错误代码,消息文本来实例化对象 /// /// 错误代码 /// 错误消息 public OperateResult( int err, string msg ) : base( err, msg ) { } #endregion /// /// 用户自定义的泛型数据1 /// public T1 Content1 { get; set; } /// /// 用户自定义的泛型数据2 /// public T2 Content2 { get; set; } /// /// 用户自定义的泛型数据3 /// public T3 Content3 { get; set; } /// /// 用户自定义的泛型数据4 /// public T4 Content4 { get; set; } /// /// 用户自定义的泛型数据5 /// public T5 Content5 { get; set; } /// /// 用户自定义的泛型数据6 /// public T6 Content6 { get; set; } /// /// 用户自定义的泛型数据7 /// public T7 Content7 { get; set; } /// /// 用户自定义的泛型数据8 /// public T8 Content8 { get; set; } /// /// 用户自定义的泛型数据9 /// public T9 Content9 { get; set; } } /// /// 操作结果的泛型类,允许带十个用户自定义的泛型对象,推荐使用这个类 /// /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 /// 泛型类 public class OperateResult : OperateResult { #region Constructor /// /// 实例化一个默认的结果对象 /// public OperateResult( ) : base( ) { } /// /// 使用指定的消息实例化一个默认的结果对象 /// /// 错误消息 public OperateResult( string msg ) : base( msg ) { } /// /// 使用错误代码,消息文本来实例化对象 /// /// 错误代码 /// 错误消息 public OperateResult( int err, string msg ) : base( err, msg ) { } #endregion /// /// 用户自定义的泛型数据1 /// public T1 Content1 { get; set; } /// /// 用户自定义的泛型数据2 /// public T2 Content2 { get; set; } /// /// 用户自定义的泛型数据3 /// public T3 Content3 { get; set; } /// /// 用户自定义的泛型数据4 /// public T4 Content4 { get; set; } /// /// 用户自定义的泛型数据5 /// public T5 Content5 { get; set; } /// /// 用户自定义的泛型数据6 /// public T6 Content6 { get; set; } /// /// 用户自定义的泛型数据7 /// public T7 Content7 { get; set; } /// /// 用户自定义的泛型数据8 /// public T8 Content8 { get; set; } /// /// 用户自定义的泛型数据9 /// public T9 Content9 { get; set; } /// /// 用户自定义的泛型数据10 /// public T10 Content10 { get; set; } } }