C# 如何在没有保证模式的情况下使用.NET XML序列化
基本上,我需要反序列化一些xml。在编写代码时,我将了解XML的结构,但我希望能够对XML进行简单的更改,而不必更新序列化代码 例如:C# 如何在没有保证模式的情况下使用.NET XML序列化,c#,xml-serialization,C#,Xml Serialization,基本上,我需要反序列化一些xml。在编写代码时,我将了解XML的结构,但我希望能够对XML进行简单的更改,而不必更新序列化代码 例如: <foo> <bar/> </foo> 我希望能够反序列化foo,即使我添加了attibuted serializable类中未定义的额外节点 <foo> <bar/> <extra-tag/> </foo> 如果我正确理解了你的问题,这应该可以 给定一个类:
<foo>
<bar/>
</foo>
我希望能够反序列化foo,即使我添加了attibuted serializable类中未定义的额外节点
<foo>
<bar/>
<extra-tag/>
</foo>
如果我正确理解了你的问题,这应该可以 给定一个类:
[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;
[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));
代码继续工作我想这是一个错误的假设,我认为它不会工作。我想这是一个错误的假设,我认为它不会工作