让我们看看能否解释一下我要做的事情......
假设我有一个对象,其中包含一个如下所示的属性路径:
Appointment.Person.Name
如果我想更新“Person”属性,我可以这样做:
PropertyInfo subPropertyInfo = apptObject.GetType().GetProperty("Person");
subPropertyInfo.SetValue(apptObject, replacementValue, null);
但是如何更新根对象的Name属性?
答案 0 :(得分:2)
获取Person
的当前值,然后以与您当前相同的方式更新它:
PropertyInfo subPropertyInfo = apptObject.GetType().GetProperty("Person");
Object p = subPropertyInfo.GetValue(apptObject);
PropertyInfo subSubPropertyInfo = p.GetType().GetProperty("Name");
subSubPropertyInfo.SetValue(p, replacementValue, null);
答案 1 :(得分:0)
怎么样:
PropertyInfo subPropertyInfo = apptObject.Person.GetType().GetProperty("Name");
subPropertyInfo.SetValue(apptObject.Person, replacementValue, null);