有没有一种简单的方法来设置对象的所有属性以匹配另一个对象?

时间:2017-08-22 17:10:37

标签: c# asp.net

我有一个包含属性的类,然后我有一个自定义控件,它具有与第一个对象相同的属性(或者一个子集)。

目前,对于每个属性,我基本上只是手动设置它。如果有更简单的方法,我只是好奇。反思会对此有所帮助吗?

1 个答案:

答案 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));
    }

}