当前位置 : 主页 > 网络编程 > net编程 >

c# 万能模型类型转换

来源:互联网 收集:自由互联 发布时间:2023-09-07
调用 //获取一条User数据 UserModel model=GetUser(); //把UserModel类型转换成UserInfoModel类型 var userInfoModel = ModelTypeConvert.ConvertUserModel, UserInfoModel(model); 核心代码 /// summary /// 模型类型转换 /// /su

调用

//获取一条User数据
UserModel model=GetUser();

//把UserModel类型转换成UserInfoModel类型
var userInfoModel = ModelTypeConvert.Convert<UserModel, UserInfoModel>(model);

核心代码 

/// <summary>
/// 模型类型转换
/// </summary>
public class ModelTypeConvert
{
/// <summary>
/// 模型类型转换,OutT的属性必须和InT的属性类型和属性名称一致
/// </summary>
/// <typeparam name="InT">进入的类型</typeparam>
/// <typeparam name="OutT">转换后的类型</typeparam>
/// <param name="inT">进入的类型</param>
/// <returns></returns>
public static OutT Convert<InT, OutT>(InT inT)
{
Type InType = typeof(InT);
InT inTModel = inT;

Type OutType = typeof(OutT);
OutT outTModel = (OutT)Activator.CreateInstance(OutType);

//通过反射去遍历属性
foreach (PropertyInfo inProperty in InType.GetProperties())
{
foreach (PropertyInfo OutProperty in OutType.GetProperties())
{
if (inProperty.Name== OutProperty.Name && inProperty.PropertyType == OutProperty.PropertyType)
{
OutProperty.SetValue(outTModel, inProperty.GetValue(inTModel));
}
}
}

return outTModel;
}
}


【本文转自:美国服务器 http://www.558idc.com/mg.html欢迎留下您的宝贵建议】
上一篇:c# 数字自增,返回指定长度字符串
下一篇:没有了
网友评论