Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当我知道成员名称时,访问动态对象成员的最佳方法是什么?_C#_Dynamic_.net 4.0 - Fatal编程技术网

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

C# 当我知道成员名称时,访问动态对象成员的最佳方法是什么?,c#,dynamic,.net-4.0,C#,Dynamic,.net 4.0,给定动态对象和字符串成员名称: string AMemberNameIKnowExists = "SomeMember"; //determined at runtime dynamic myDynamicObject = //... 我想访问动态对象上的“SomeMember”成员。我是否必须使用标准反射工具,或者我有一个动态对象这一事实是否为我提供了一种更好的方法来按名称解析成员?尝试这种方法从对象获取属性值 myDynamicObject.GetType()

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

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

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

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

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

我尚未对此进行测试,但您应该能够使用
DynamicObject
的方法:

就我所理解的
dynamic
,这就是像
myDynamicObject.SomeMember
这样的动态调用被转换为的内容

商定的jbtule的可能副本(且已找到)。
myDynamicObject.TryGetMember(new GetMemberBinder("SomeMember", false), out result)