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

4

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

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

我想访问我的动态对象上的"SomeMember"成员。我必须使用标准反射工具吗?还是我拥有一个动态对象可以更好地通过名称解析成员?


1
可能重复:动态获取动态对象的值 - jbtule
同意 jbtule(并且找对了)。 - Daniel Schobel
2个回答

2

我没有测试过,但是你应该能够使用DynamicObjectTryGetMember方法:

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

据我所理解,dynamic 就是像 myDynamicObject.SomeMember 这样的动态调用被转换成的形式。

0

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接