Я дал XML, который я не могу изменить, и я должен десериализовать его к пользовательскому классу:
... other additional addresses
... other elements
Затем я десериализовываю:
XmlSerializer serializer = new XmlSerializer(typeof(Person), namespace);
Person person = serializer.Deserialize(stream) as Person;
Deserializer хорошо работает в случае, если простые элементы десериализовываются. Когда существует элемент, любят Адреса, как которые я реализую IXmlSerializable на его классе здесь: текст ссылки
Проблемой является тот читатель. ReadElementContentAsString () не может использоваться со сложными элементами.
Класс Adressess должен быть объявлен следующим образом:
[XmlRoot("Adressess")]
public class Adressess
{
[XmlElement(ElementName = "MainAddress")]
public MainAddress Main { get; set; }
[XmlElement(ElementName = "AdditionalAddress")]
public List<AdditionalAddress> AdditionalAddresses { get; set; }
}
[XmlRoot("MainAddress")]
public class MainAddress
{
public string Country { get; set; }
public string City { get; set; }
}
[XmlRoot("AdditionalAddress")]
public class AdditionalAddress
{
public string Country { get; set; }
public string City { get; set; }
}