adsl club

Справочник

Форум

Программы

Фильмы

Ресурсы

Файлообмен

Хостинг

Ростелеком
C# XML Serialization
Ответить на тему    Форум АДСЛ КлубаЦИФРОВОЙ ФЛЕЙМ :)ПРОГРАММИРОВАНИЕ
Автор Сообщение
ultrancux
Продвинутый форумчанин
СообщениеДобавлено: Чт 27-01-11 : 12-10    Заголовок сообщения: C# XML Serialization Ответить с цитатой

Есть вот такого рода xml:

Код:
<tr>
      <td>
            <element id="8367">
               <type>Label</type>
            </element>
      </td>
      <td>
            <element id="8369">
               <type>Label</type>
            </element>
      </td>
      <td>
            <element id="8370">
               <type>Label</type>
            </element>
      </td>
   </tr>
   <tr>
      <td>
            <element id="8371">
               <type>Label</type>
            </element>
      </td>
      <td>
            <element id="8368">
               <type>Label</type>
            </element>
      </td>
   </tr>


Необходимо десериализовать через аннотации. Помогите составить объектную модель

Код:
class Program
   {
      static void Main(string[] args)
      {
         XElement test = XDocument.Parse(File.ReadAllText(@"C:\test.xml")).Root;
         var tt = Panel.Deserialize(test);
      }
   }

   [XmlRoot(ElementName = "panel")]
   public class Panel
   {
      public int PanelId { get; set; }
      public string Description { get; set; }
      [XmlArray(ElementName="tr")]
      [XmlArrayItem(ElementName="td")]
      public List<tr> Tr { get; set; }

      public XElement Serialize()
      {
         XmlSerializer xmlSerializer = new XmlSerializer(typeof(Panel));
         MemoryStream ms = new MemoryStream();
         xmlSerializer.Serialize(ms, this);
         ms.Seek(0, SeekOrigin.Begin);
         return XElement.Load(ms);
      }

      public static Panel Deserialize(XElement BaseXML)
      {
         XmlSerializer xmlSerializer = new XmlSerializer(typeof(Panel));
         MemoryStream ms = new MemoryStream();
         BaseXML.Save(ms);
         ms.Seek(0, SeekOrigin.Begin);
         var t = xmlSerializer.Deserialize(ms) as Panel;
         return t;
      }
   }

   public class Element
   {
      public int ElementId { get; set; }
   }

   public class tr
   {
      [XmlArray(ElementName="tr")]
      [XmlArrayItem(ElementName="td")]
      public List<td> td { get; set; }
   }

   public class td
   {
      public Element Element { get; set; }
   }


Никак не могу побороться с массивом, который внутри себя содержит элемент и так уже являющийся массивом
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение  
Показать сообщения:   
Ответить на тему    Форум АДСЛ КлубаЦИФРОВОЙ ФЛЕЙМ :)ПРОГРАММИРОВАНИЕ Часовой пояс: GMT + 7
Страница 1 из 1

 

 
Аватары: Вкл|Выкл   ЮзерИнфо: Вкл|Выкл   Подписи: Вкл|Выкл
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы