【发布时间】:2011-01-04 22:35:11
【问题描述】:
我有一些可反序列化为业务对象的 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;}
【问题讨论】:
标签: c# xml serialization xelement