当我知道成员名称时访问动态对象成员的最佳方法?

时间:2012-05-31 07:55:07

标签: c# dynamic .net-4.0

给定动态对象和字符串成员名称:

string AMemberNameIKnowExists = "SomeMember"; //determined at runtime
dynamic myDynamicObject = //...

我想访问动态对象上的“SomeMember”成员。我是否必须使用标准反射工具,或者我有动态对象的事实是否为我提供了更好的方法来解析成员名称?

2 个答案:

答案 0 :(得分:2)

我尚未对此进行测试,但您应该可以使用DynamicObject TryGetMember方法:

myDynamicObject.TryGetMember(new GetMemberBinder("SomeMember", false), out result)

据我了解dynamic,这就像myDynamicObject.SomeMember这样的动态调用被翻译成了什么。

答案 1 :(得分:0)

尝试这种方式从对象中获取属性值

myDynamicObject.GetType()
               .GetProperty("SomeMember")
               .GetValue(myDynamicObject, null);