Создание анонимного типа динамически?
Я хочу создать анонимный тип, который я могу установить имя свойства динамически. это не обязательно должен быть анонимный тип. Все, чего я хочу добиться, это динамически устанавливать любые имена свойств объектов. Это может быть ExpandoObject, но словарь у меня не подойдет.
Каковы ваши предложения?
Ответы
Ответ 1
Только 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);
Ответ 2
Вы можете вставить 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);