jlp*_*jlp 6 xml asp.net xml-serialization
我已经给出了我无法更改的XML,我需要将其反序列化为自定义类:
<Person>
<Addresses>
<MainAddress>
<Country />
<City />
</MainAddress>
<AdditionalAddress>
<Country />
<City />
</AdditionalAddress>
<AdditionalAddress>
<Country />
<City />
</AdditionalAddress>
... other additional addresses
</Addresses>
... other elements
</Person>
Run Code Online (Sandbox Code Playgroud)
然后我反序列化:
XmlSerializer serializer = new XmlSerializer(typeof(Person), namespace);
Person person = serializer.Deserialize(stream) as Person;
Run Code Online (Sandbox Code Playgroud)
如果简单元素被反序列化,则反序列化器可以正常工作.当有像地址这样的元素时,我在它的类上实现了IXmlSerializable:链接文本
问题是reader.ReadElementContentAsString()不能与复杂元素一起使用.
地址类应该这样声明:
[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; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3516 次 |
| 最近记录: |