Reflection Help - 基于另一个对象设置对象的属性

时间:2010-01-26 21:08:26

标签: c# reflection oop

我可以使用一些重新帮助。我将一个对象传递给另一个对象的构造函数。我需要遍历参数的属性并根据它设置新的对象属性。大多数(但不是全部)params属性存在于新对象中。

到目前为止我有这个基本的骨架。

  public DisabilityPaymentAddEntity(DisabilityPaymentPreDisplayEntity preDisplay)
  {
      Init(preDisplay);
  }

  private void Init(DisabilityPaymentPreDisplayEntity display)
  {
       //need some type of loop using reflection here
  }

在'Init'方法中,我需要遍历'display'的属性,并将同名的'DisabilityPaymentAddEntity'属性设置为preDisplay中的值。

任何人都可以告诉我我需要做什么吗?我确信我需要使用PropertyInfo等。

谢谢, 〜在圣地亚哥

1 个答案:

答案 0 :(得分:3)

我认为这样的事情

Type target = typeof(DisabilityPaymentAddEntity);
foreach(PropertyInfo pi in display.GetType().GetProperties())
{
     PropertyInfo targetProp = target.GetProperty(pi.Name);
     if(targetProp!=null)
     {
        targetProp.SetValue(this, pi.GetValue(display, null), null);
     }
}