我有一些可反序列化为业务对象的 XML。我正在使用 XmlSerializer.Deserialize 这样做。但是,我希望 XML 中包含的 XmlElement 之一保持 XElement。
它不能直接完成(使用 XmlElementAttribute),因为 XElement 不可序列化。我还尝试将该元素序列化为字符串(分两步尝试获取 XElement),但失败并出现错误:
意外的节点类型元素。readelementstring 方法只能在内容简单或为空的元素上调用
知道怎么做吗?
这是 xml 的示例和我想要的结果对象:
<Person name="Joe">
<Hobbies>
<Hobby name="Reading" .../>
<Hobby name="Photography" .../>
</Hobbies>
<HomeAddress>
...
</HomeAddress>
</Person>
目的:
public class Person
{
[XmlAttribute("Name")]
public string Name {get; set;}
?????
public XElement Hobbies {get; set;}
[XmlElement("HomeAddress")]
public Address HomeAddress {get; set;}
}
无效的尝试:
[XmlElement("Hobbies")]
public XElement Hobbies {get; set;}
[XmlElement("Hobbies")]
public string Hobbies {get; set;}