XML сериализация массив - PullRequest
0 голосов
/ 08 октября 2009

У меня есть собственный XML (специфичный для поставщика), который мне нужно сериализовать и десериализовать. Формат XML следующий:

<RootElement> 
    <childelement>              
         <id/>
          <description/>
    </childelement>
    <childelement>
         <id/>
         <description/>
    </childelement>
</RootElement>
  • Корневым элементом является также и Object, который содержит список дочерних элементов
  • Дочерний элемент определяется как объект

Обратите внимание, что я не хочу, чтобы элементы childelements инкапсулировались другим тегом. Извините, это не мой дизайн XML:)

1 Ответ

1 голос
/ 12 октября 2009

Вот пример использования C #. Здесь является примером, если вам нужно использовать пространства имен XML.

[XmlRoot("RootElement")]
public class MyObject
{
    [XmlElement("childelement")]
    public MyChild[] Children { get; set; }
}
public class MyChild
{
    [XmlElement("id")]
    public int ID { get; set; }
    [XmlElement("description")]
    public string Description { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        var xser = new XmlSerializer(typeof(MyObject));
        using (var ms = new MemoryStream())
        {
            var myObj = new MyObject()
            {
                Children = new[]{
                    new MyChild(){ ID=0, Description="Hello"},
                    new MyChild(){ ID=1, Description="World"}
                }
            };
            xser.Serialize(ms, myObj);
            var res = Encoding.ASCII.GetString(ms.ToArray());
            /*
                <?xml version="1.0"?>
                <RootElement>
                  <childelement>
                    <id>0</id>
                    <description>Hello</description>
                  </childelement>
                  <childelement>
                    <id>1</id>
                    <description>World</description>
                  </childelement>
                </RootElement>
             */
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...