我给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