用于在C#上遍历对象属性树的库

时间:2012-05-24 14:46:17

标签: c#

我希望有一个方法可以通过属性名称遍历对象并获取属性的值。

更具体地说,作为输入,我有一个像“Model.Child.Name”这样的字符串,我希望这个方法获取一个对象并获取可以通过以下方式编程的值:object.Model.Child.Name。< / p>

我知道这样做的唯一方法是使用Reflection,但我不想自己编写这段代码,因为我相信存在陷阱。而且,我认为这或多或少是平常的任务。

C#上是否有任何众所周知的算法实现?

2 个答案:

答案 0 :(得分:2)

Reflection是要走的路。

Reflection to access properties at runtime

您可以查看ObjectDumper并根据您的要求修改源代码。

ObjectDumper获取.NET对象并将其转储为字符串,文件,textWriter等。

答案 1 :(得分:1)

写起来并不难。是的,有一些陷阱,但知道陷阱是很好的。

该算法很简单,它遍历树结构。在每个节点上,如果它不是这些时间之一,则检查它是否为原始值(int,string,char等),然后它是一个具有一个或多个基元并需要遍历到它的基元的结构。

陷阱是处理空值,可空类型,值与引用类型等等。每个开发人员应该知道的直接内容。