0

我最近去面试,他们问我以下问题:

编写一个组件以根据传入的数据路径遍历对象层次结构并返回实现以下方法的属性值:

公共对象 getValueFromPath(object parentObj, string dataPath);

对象层次结构将是这样的:

Object1
  objectRef2
    property1
    property2

parentObj 将是 Object1

dataPath 将是 objectRef2.property2

有人可以给我一个想法,我该怎么做。

4

1 回答 1

5

您将需要使用反射。

第一步是拆分dataPathon ,并获取对表示 ( )类型的对象.的引用。 System.TypeparentObjparentObj.GetType()

然后对于路径中的每个元素,您将使用类似对象.GetMember(...)的内容Type来查找具有该名称的成员,并Type相应地更新当前对象。

一旦你到达最后的属性,并且你有关联的ProprtyInfo对象,你就需要调用.GetValue(...)来获取属性的值。

于 2013-03-12T01:53:51.603 回答