基本上,我有一些我需要反序列化的xml。在我编写代码时,我将了解XML的结构,但我希望能够对xml进行简单的更改,而无需更新序列化代码。
示例:
<foo>
<bar/>
</foo>
我希望能够反序列化foo,即使我添加了一个未在attibuted可序列化类中定义的额外节点。
<foo>
<bar/>
<extra-tag/>
</foo>
答案 0 :(得分:1)
如果我理解你的问题,这应该可以正常工作。
给出一个课程:
[XmlRoot("foo")]
public class Foo
{
[XmlElement("bar")]
public string Bar;
[XmlElement("extra-tag")]
public string ExtraTag;
}
然后这段代码工作正常:
string xml =
@"<foo>
<bar>bar</bar>
<extra-tag>extra-tag</extra-tag>
</foo>";
XmlSerializer serializer = new XmlSerializer(typeof(Foo));
Foo afoo = (Foo)serializer.Deserialize(new StringReader(xml));
但如果你的班级看起来像这样:
[XmlRoot("foo")]
public class Foo
{
[XmlElement("bar")]
public string Bar;
}
代码继续工作