我給XML,我無法改變,我需要將其反序列化的自定義類:如何使用多個嵌套項目反序列化XML?
<Person>
<Addresses>
<MainAddress>
<Country />
<City />
</MainAddress>
<AdditionalAddress>
<Country />
<City />
</AdditionalAddress>
<AdditionalAddress>
<Country />
<City />
</AdditionalAddress>
... other additional addresses
</Addresses>
... other elements
</Person>
然後我反序列化:
XmlSerializer serializer = new XmlSerializer(typeof(Person), namespace);
Person person = serializer.Deserialize(stream) as Person;
解串器工作正常的情況下,簡單的元素被反序列化。 當有元素像地址我實現它的類IXmlSerializable像這裏:link text
問題是reader.ReadElementContentAsString()不能用於複雜的元素。
。注意,類型名稱是不相關的,所以例如MainAddress屬性可以在類MainAddressStore中實現,或者其他任何東西(我發現有時候會混淆有屬性和類型共享名稱)。這對於像這樣的骨架類來說並不是非常重要,當然這只是序列化支持的唯一目的。 – 2009-12-10 13:40:55
我剛編輯過的屬性名稱與類名稱不同。我只是不確定是否真的需要不同的MainAddress和AdditionalAddress類。我希望它們以不同的XmlRoot名稱進行annonated。 – PanJanek 2009-12-10 13:49:56
我不工作。 MainAddress被填充,但AdditionalAddresses不是。 – jlp 2009-12-10 13:51:33