Как сериализовать объект в XML с несколькими идентичными родственными элементами

#vb.net #serialization

#vb.net #сериализация

Вопрос:

Я пытаюсь создать структуру классов, которую я могу сериализовать в XML-файл. Все работает нормально, за исключением одного раздела моего XML, который должен выглядеть следующим образом:

 <DeliveryAddress>
    <AddressLine>123 Main st</AddressLine>
    <AddressLine>Ste 99</AddressLine>
</DeliveryAddress>
  

Как бы выглядела моя структура классов, чтобы сделать это возможным?

 Public Class DeliveryAddress
    Public Property AddressLine as new List(Of String)
End Class
  

Приведенное выше работает, но элементы адреса просто называются «String» вместо AddressLine при добавлении данных следующим образом:

 Dim delAddr as new DeliveryAddress
delAddr.AddressLine.add("123 Main St")
delAddr.AddressLine.add("ste 99")
  

Я чувствую, что это должно быть просто, но я не совсем в состоянии понять это

Ответ №1:

Добавьте «XmlElementAttribute» перед свойством. Это работает.

 Public Class DeliveryAddress
    <XmlElementAttribute(IsNullable:=False)> _
    Public Property AddressLine As New List(Of String)
End Class
  

На выходе получается:

    <?xml version="1.0" encoding="UTF-8"?>

-<DeliveryAddress xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<AddressLine>123 Main St</AddressLine>

<AddressLine>ste 99</AddressLine>

</DeliveryAddress>