我有一个包含属性的类,然后我有一个自定义控件,它具有与第一个对象相同的属性(或者一个子集)。
目前,对于每个属性,我基本上只是手动设置它。如果有更简单的方法,我只是好奇。反思会对此有所帮助吗?
答案 0 :(得分:3)
是的,您可以使用反射
void Copy(object from, object to)
{
Type fromType = from.GetType();
Type toType = to.GetType();
foreach(var prop in fromType.GetProperties()
.Where(p=>toType.GetProperty(p.Name)!=null))
{
toType.GetProperty(prop.Name).SetValue(to, prop.GetValue(from, null));
}
}