【发布时间】:2012-10-24 18:22:54
【问题描述】:
谁能解释为什么我得到下面的结果?
应该实例化的类:
[System.SerializableAttribute()]
public class SampleClass
{
[System.Xml.Serialization.XmlElementAttribute(Order = 10)]
public string Foo { get; set; }
[System.Xml.Serialization.XmlElementAttribute(Order = 5)]
public string Bar { get; set; }
}
用于反序列化的XML:
<?xml version="1.0" encoding="utf-8" ?>
<SampleClass>
<Foo>Test1</Foo>
<Bar>Test2</Bar>
</SampleClass>
我在反序列化的类中看到 Foo = Test1(正确)和 Bar = null(不正确)。
这都是关于Order 属性的。它被故意设置为错误的值。如果值为 0 和 1,则一切正常。
Name 和 Order 两个字段的条件都不匹配,但由于某种原因,一个字段被反序列化,而第二个字段没有。我宁愿看到 Exception 或两个值 = null 或两个字段都已解析和反序列化。
对此有什么解释吗?
【问题讨论】:
-
您是故意这样做的吗?
XmlSerializer(Order = 10) -
没有 XmlSerializer 属性。
-
你的问题是:我故意做错了,但想知道为什么它的行为与我的预期不同?
-
CodeIgnoto:谢谢。我固定了样本。它是我的代码中的 XmlElementAttribute。
-
您可能想看看这篇文章,它解释了为什么会发生这种情况并提供解决方案 - webservices20.blogspot.com/2009/01/…
标签: c# .net serialization xml-serialization