度量快速开发平台-专业、快速的软件定制快开平台
标题:
C#用反射实现两个类的对象之间相同属性的值的复制
[打印本页]
作者:
Adam丶鱼
时间:
2020-4-22 18:20
标题:
C#用反射实现两个类的对象之间相同属性的值的复制
/// <summary>
/// 反射实现两个类的对象之间相同属性的值的复制
/// 适用于初始化新实体
/// </summary>
/// <typeparam name="D">返回的实体</typeparam>
/// <typeparam name="S">数据源实体</typeparam>
/// <param name="s">数据源实体</param>
/// <returns>返回的新实体</returns>
public static D Mapper<D, S>(S s)
{
D d = Activator.CreateInstance<D>(); //构造新实例
try
{
var Types = s.GetType();//获得类型
var Typed = typeof(D);
foreach (PropertyInfo sp in Types.GetProperties())//获得类型的属性字段
{
foreach (PropertyInfo dp in Typed.GetProperties())
{
if (dp.Name == sp.Name && dp.PropertyType == sp.PropertyType && dp.Name!= "Error" && dp.Name != "Item")//判断属性名是否相同
{
dp.SetValue(d, sp.GetValue(s, null), null);//获得s对象属性的值复制给d对象的属性
}
}
}
}
catch (Exception ex)
{
throw ex;
}
return d;
}
作者:
Adam丶鱼
时间:
2020-4-22 18:21
作者:
张兴康
时间:
2020-4-23 14:49
欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://p.delit.cn/)
Powered by Discuz! X3.2