在调用接口的时候,发现二个类型的属性几乎全部相同,并且属性很多,现在需要将一个类型转换为另一个类型,并将相同属性赋值给另一个,一个个去写,浪费时间,需要抽象出一个函数,用到反射,记录一下。
public D Mapper<D, S>(S s)
{
D d = Activator.CreateInstance<D>();
try
{
var sType = s.GetType(); var dType = typeof(D);
foreach (PropertyInfo sP in sType.GetProperties())
{
foreach (PropertyInfo dP in dType.GetProperties())
{
if (dP.Name == sP.Name)
{
dP.SetValue(d, sP.GetValue(s, null), null);
}
}
}
}
catch (Exception ex) { } return d;
}
本文介绍了一种利用反射机制实现两个类型间属性自动映射的方法。通过创建通用函数简化了对象属性复制的过程,适用于属性名相同的情况。该方法避免了手动编写冗余的属性赋值代码。

被折叠的 条评论
为什么被折叠?



