我有一些XML反序列化为业务对象。我正在使用XmlSerializer.Deserialize来这样做。但是,我希望XML中包含的一个XmlElement保留XElement。部分反序列化XML到对象
它不能直接(使用XmlElementAttribute),因为的XElement无法序列化完成。我也试着该元素序列化到一个字符串(在两个步骤试图得到的XElement),但失败,错误:
unexpected node type element. readelementstring method can only be called on elements with simple or empty content
不知道如何可以做?
这里是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;}
非常好。我不明白为什么在将XmlElementAttribute指定为'Hobbies'时需要内部节点。然而,我控制了XML,所以我只是在'Hobbies'节点周围添加了一个包装节点,以获得我需要的内容(而不是使用列表)。非常感谢。 – joerage 2010-01-14 15:51:15