4

「IDictionary」スタイルのルックアップを使用して、expando のプロパティに動的にアクセスする方法はありますか?

var messageLocation = "Message";
dynamic expando = new ExpandoObject();
expando.Message = "I am awesome!";
Console.WriteLine(expando[messageLocation]);
4

1 に答える 1

11

ExpandoObjecttoをキャストする必要があります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。そうしないと、サンプルはコンパイルされません)

于 2011-05-05T20:21:57.600 に答える