你如何使用反射来获得子属性?
How do you use reflection to get a sub property?
让我们看看我是否可以解释我正在尝试做的事情......
假设我有一个对象,有一条通往 属性 的路径,如下所示:
Appointment.Person.Name
如果我想更新 "Person" 属性,我可以这样做:
PropertyInfo subPropertyInfo = apptObject.GetType().GetProperty("Person");
subPropertyInfo.SetValue(apptObject, replacementValue, null);
但是我该如何更新根对象的名称 属性?
怎么样:
PropertyInfo subPropertyInfo = apptObject.Person.GetType().GetProperty("Name");
subPropertyInfo.SetValue(apptObject.Person, replacementValue, null);
获取 Person
的当前值,然后以与当前相同的方式更新它:
PropertyInfo subPropertyInfo = apptObject.GetType().GetProperty("Person");
Object p = subPropertyInfo.GetValue(apptObject);
PropertyInfo subSubPropertyInfo = p.GetType().GetProperty("Name");
subSubPropertyInfo.SetValue(p, replacementValue, null);
让我们看看我是否可以解释我正在尝试做的事情......
假设我有一个对象,有一条通往 属性 的路径,如下所示:
Appointment.Person.Name
如果我想更新 "Person" 属性,我可以这样做:
PropertyInfo subPropertyInfo = apptObject.GetType().GetProperty("Person");
subPropertyInfo.SetValue(apptObject, replacementValue, null);
但是我该如何更新根对象的名称 属性?
怎么样:
PropertyInfo subPropertyInfo = apptObject.Person.GetType().GetProperty("Name");
subPropertyInfo.SetValue(apptObject.Person, replacementValue, null);
获取 Person
的当前值,然后以与当前相同的方式更新它:
PropertyInfo subPropertyInfo = apptObject.GetType().GetProperty("Person");
Object p = subPropertyInfo.GetValue(apptObject);
PropertyInfo subSubPropertyInfo = p.GetType().GetProperty("Name");
subSubPropertyInfo.SetValue(p, replacementValue, null);