有没有办法使用“IDictionary”样式查找动态访问 expando 的属性?
var messageLocation = "Message";
dynamic expando = new ExpandoObject();
expando.Message = "I am awesome!";
Console.WriteLine(expando[messageLocation]);
最佳答案
您必须将 ExpandoObject
转换为 IDictionary<string, object>
:
var messageLocation = "Message";
dynamic expando = new ExpandoObject();
expando.Message = "I am awesome!";
var expandoDict = (IDictionary<string, object>)expando;
Console.WriteLine(expandoDict[messageLocation]);
(此外,您的 expando 变量必须输入为
dynamic
以便在运行时确定属性访问权限 - 否则您的示例将无法编译)关于c# - 如何动态引用 ExpandoObject 中的字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5903581/