I have given XML that I can't change and I need to deserialize it to a custom class:
<Person>
<Addresses>
<MainAddress>
<Country />
<City />
</MainAddress>
<AdditionalAddress>
<Country />
<City />
</AdditionalAddress>
<AdditionalAddress>
<Country />
<City />
</AdditionalAddress>
... other additional addresses
</Addresses>
... other elements
</Person>
Then I deserialize:
XmlSerializer serializer = new XmlSerializer(typeof(Person), namespace);
Person person = serializer.Deserialize(stream) as Person;
Deserializer works fine in case simple elements are deserialized. When there is element like Addresses I implement IXmlSerializable on its class like here: link text
The problem is that reader.ReadElementContentAsString() cannot be used with complex elements.