给定一个动态对象和一个字符串成员名称:
string AMemberNameIKnowExists = "SomeMember"; //determined at runtime
dynamic myDynamicObject = //...
我想访问我的动态对象上的"SomeMember"成员。我必须使用标准反射工具吗?还是我拥有一个动态对象可以更好地通过名称解析成员?
给定一个动态对象和一个字符串成员名称:
string AMemberNameIKnowExists = "SomeMember"; //determined at runtime
dynamic myDynamicObject = //...
我想访问我的动态对象上的"SomeMember"成员。我必须使用标准反射工具吗?还是我拥有一个动态对象可以更好地通过名称解析成员?
我没有测试过,但是你应该能够使用DynamicObject
的TryGetMember
方法:
myDynamicObject.TryGetMember(new GetMemberBinder("SomeMember", false), out result)
dynamic
就是像 myDynamicObject.SomeMember
这样的动态调用被转换成的形式。尝试使用这种方式从对象中获取属性值
myDynamicObject.GetType()
.GetProperty("SomeMember")
.GetValue(myDynamicObject, null);