Мне нужно создать сериализуемый (XML) объект, который должен иметь три одинаковых значения AddressLine
. Это требуется от DHL, для интеграции. Из документации:
<xsd:sequence>
<xsd:element name="CompanyName" type="CompanyNameValidator" />
<xsd:element name="AddressLine" type="AddressLine" minOccurs="1" maxOccurs="3"/>
<xsd:element name="City" type="City" minOccurs="0"/>
Мне нужно получить XML, который выглядит следующим образом.
<Consignee>
<CompanyName>Company</CompanyName>
<AddressLine>address 1</AddressLine>
<AddressLine>address 2</AddressLine>
<AddressLine>address 3</AddressLine>
<City>City</City>
</Consignee>
Я попытался создать элементы с разными именами и установить новое имя с [XmlElement("AddressLine")]
, но это не работает.
public string CompanyName { get; set; }
public string AddressLine { get; set; }
[XmlElement("AddressLine")]
public string AddressLine1 { get; set; }
[XmlElement("AddressLine")]
public string AddressLine2 { get; set; }
public string City { get; set; }
Сообщение об ошибке:
There was an error reflecting property 'AddressLine1'. ---> System.InvalidOperationException:
The XML element 'AddressLine' from namespace '' is already present in the current scope. Use XML
attributes to specify another XML name or namespace for the element.
Если я использую массив или список не очень хорошо или, по крайней мере, у меня ничего не получилось.
Моя последняя идея - сериализовать объект с AddressLine2
и AddressLine3
в строку и в значениях обрыва строки в AddressLine
.
Где способ создания объекта, который после сериализации будет выглядеть в примере? Есть предложения?
Спасибо за ответы.