2012-01-01 2 views
1

set value of a property of an anonymous type using reflection/TypeDescriptor is it possible?Анонимные типы неизменяемы, структура или полный объект?

Согласно @Slaks,

C# анонимные типы неизменны, и их свойства не могут быть изменены .

пример:

dynamic p = new {aaa="1", bbb="2"}; 

мой вопрос, Что неизменен? (? Структура, ценности, весь мир)

структура из

{ 
      something (in type of string) 
      , 
     something (in type of string) 
    } 

(то есть - структура неизменна - и я не могу изменить его структуру)

или

{ 
      something called aaa (in type of string) 
      , 
     something called bbb (in type of string) 
    } 

или

весь мир:

{ 
     something (in type of string + value of 1) 
     , 
    something (in type of string + value of 2) 
} 

?

ответ

2

Неизменяемый означает, что он не может измениться.

Структура или значения, в данном случае.

Тип p всегда будет два string свойства - одна называется aaa со значением "1", а другой называется bbb со значением "2".

Вы не можете добавлять пользователей к анонимному типу, а также не можете изменять значения свойств.

+0

Я могу прочитать его значение через 'xxx.GetType(). GetProperty (« aaa »). GetValue (xxx, null)', Могу ли я также установить его значение через Refleaction? –

+0

@RoyiNamir - Не уверен. Похож на забавный небольшой тест;) – Oded

+0

ThanksToOded ++ .... –

Смежные вопросы