#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>