以下の結果が得られる理由を誰か説明できますか?
インスタンス化する必要があるクラス:
[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 であるか、両方のフィールドが解決されてシリアル化解除されていることを期待したいと思います。
それについての説明はありますか?