2016-07-24 2 views
1

Я делаю несколько тестов, чтобы использовать его.Как использовать массив с XmlSerializer?

У меня есть следующий XML:

<?xml version="1.0"?> 
<test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <ma>233</ma> 
    <ma>2333</ma> 
</test> 

У меня есть этот класс десериализации его:

[Serializable] 
public class test 
{ 
    public string ma { get; set; } 
} 

Это делает содержит первый элемент. Теперь я хочу, и поэтому я попробуйте установить массив

[Serializable] 
public class test 
{ 
    public string[] ma { get; set; } 
} 

Однако установка массива я теперь 0 результат в переменной ма, в то время как я по крайней мере, первый, когда он не является массивом.

Я нашел этот ответ Using XmlSerializer with an array in the root element, но он использовал другую логику ... Я хотел бы продолжать использовать [Serializable]

ответ

1

Вы должны указать, что массив не имеет отдельный элемент XML, чтобы обернуть его элементы, но появляются элементы массива непосредственно под элементом <test>:

public class test 
{ 
    [XmlElement] 
    public string[] ma { get; set; } 
} 

PS. иногда трудно получить правильное отображение - я обычно заполняю класс с тестовыми данными и serilalize, изучая то, что делает XmlSerializer, что обычно очищает то, что происходит.

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