我编写了一个类,其中包含一个静态方法,可以将一个对象的属性值复制到另一个对象中。它不关心每个对象的类型,只要它们具有相同的属性即可。它已经能够满足我的需求,所以我不会再做更多的改进。但是你会对此有什么改进建议吗?
以下是代码:
我使用它的方式如下:
以下是代码:
public class ShallowCopy
{
public static void Copy<From, To>(From from, To to)
where To : class
where From : class
{
Type toType = to.GetType();
foreach (var propertyInfo in from.GetType().GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance))
{
toType.GetProperty(propertyInfo.Name).SetValue(to, propertyInfo.GetValue(from, null), null);
}
}
}
我使用它的方式如下:
EmployeeDTO dto = GetEmployeeDTO();
Employee employee = new Employee();
ShallowCopy.Copy(dto, employee);
IEnumerable
继承的PropertyType
的PropertyInfo
。显然,您需要处理清除目标可枚举和其他事情。 - Neil Barnwell