【发布时间】:2010-12-27 23:02:45
【问题描述】:
是的,标题听起来有点混乱,所以我将解释我的意思:假设您有一个 C# 4.0 的“动态”对象和一个属性的名称。您将如何从动态对象中检索该属性?
换句话说,你将如何实现:
public static object GetDynamicValue(dynamic o, string name) { ... }
另一种说法是,我试图将动态对象视为 IDictionary。
请注意,反射在这里可能不是一个选项,因为动态对象可能是不基于反射的自定义实现(例如,通过扩展 DynamicObject 并做自己的事情)。
【问题讨论】:
-
您能多谈谈您的用例吗?如果您想要一个类似于 IDictionary 的动态对象,为什么不使用 ExpandoObject,例如? Jon 的建议可能有效,但我觉得这对于您正在尝试做的事情来说太复杂了。