我想要一个可以通过属性名称遍历对象并获取属性值的方法。
更具体地说,作为输入,我有一个像“Model.Child.Name”这样的字符串,我希望这个方法获取一个对象并让我获得可以通过以下方式以编程方式找到的值:object.Model.Child.Name。
我知道这样做的唯一方法是使用反射,但我不想自己编写这段代码,因为我相信存在陷阱。此外,我认为这或多或少是通常的任务。
在 C# 上是否有像这样的算法的知名实现?
我想要一个可以通过属性名称遍历对象并获取属性值的方法。
更具体地说,作为输入,我有一个像“Model.Child.Name”这样的字符串,我希望这个方法获取一个对象并让我获得可以通过以下方式以编程方式找到的值:object.Model.Child.Name。
我知道这样做的唯一方法是使用反射,但我不想自己编写这段代码,因为我相信存在陷阱。此外,我认为这或多或少是通常的任务。
在 C# 上是否有像这样的算法的知名实现?
写起来没那么难。是的,有一些陷阱,但很高兴知道这些陷阱。
该算法很简单,它遍历树结构。在每个节点上,您检查它的原始值(int、string、char 等),如果它不是这些时间之一,那么它是一个具有一个或多个原语并且需要遍历到它的原语的结构。
陷阱是处理空值、可空类型、值与引用类型等。每个开发人员都应该知道的直截了当的东西。