プロパティ名を動的に設定できる匿名型を作成したい。匿名型である必要はありません。私が達成したいのは、オブジェクトのプロパティ名を動的に設定することです。 ExpandoObjectでも構いませんが、辞書は機能しません。
あなたの提案は何ですか?
ExpandoObject
のみが動的プロパティを持つことができます。
Edit:これは Expand Object の使用例です(MSDNの説明から):
dynamic sampleObject = new ExpandoObject();
sampleObject.TestProperty = "Dynamic Property"; // Setting dynamic property.
Console.WriteLine(sampleObject.TestProperty );
Console.WriteLine(sampleObject.TestProperty .GetType());
// This code example produces the following output:
// Dynamic Property
// System.String
dynamic test = new ExpandoObject();
((IDictionary<string, object>)test).Add("DynamicProperty", 5);
Console.WriteLine(test.DynamicProperty);
ExpandoObject
をディクショナリにキャストし、そのように入力すると、設定したキーがExpandoObjectのプロパティ名として表示されます...
dynamic data = new ExpandoObject();
IDictionary<string, object> dictionary = (IDictionary<string, object>)data;
dictionary.Add("FirstName", "Bob");
dictionary.Add("LastName", "Smith");
Console.WriteLine(data.FirstName + " " + data.LastName);