2014-05-19 3 views
0

Я читал XML, который содержит элементы следующим образом:Как создавать динамические свойства

<xs:element name="id" type="xs:int" minOccurs="0"></xs:element> 
<xs:element name="name" type="xs:string" minOccurs="0"></xs:element> 

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

dynamic obj1 = new ExpandoObject(); 
obj1.id = 1; 
obj1.name = "Shrikey"; 

где ид и имя присваиваются типа int и string соответственно.

Но меня интересует, могу ли я создать «имя свойства» также динамически на основе содержимого в атрибуте name элемента.

Надеюсь, я сделал свой вопрос понятным.

Любые предложения о том, как это можно сделать либо с помощью ExpandoObject, либо любым другим способом.

ответ

4

Вы можете отливать ExpandoObject к IDictionary<string,object>, представляющих отображения имен свойств значений свойств, а затем манипулируют эти отображения:

IDictionary<string,object> expando = new ExpandoObject(); 
expando.Add("id", 1); 
+0

+1 за лукавит один! – Christos