序列化时强制 XML 元素匹配类顺序 [英] Force XML elements to match the class order when serializing
本文介绍了序列化时强制 XML 元素匹配类顺序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有没有办法强制从 XML 序列化生成的 XML 元素按照对象类中定义的方式进行排序?
Is there a way to force XML elements generated from XML serialisation to be ordered in the same way as defined in the object class?
即
class SerializableClass
{
[XmlElement("Element.1")]
public List<string> Element1
{
get { return _Element1; }
set { _Element1 = value; }
}
private List<string> _Element1;
[XmlElement("Element.2")]
public int Element2;
[XmlElement("Element.3")]
public List<string> Element3
{
get { return _Element3; }
set { _Element3= value; }
}
private List<string> _Element3;
[XmlElement("Element.4")]
public string Element4;
[XmlElement("Element.5")]
public bool Element5;
}
到
<Element.1>SomeValue 1</Element.1>
<Element.1>SomeValue 2</Element.1>
<Element.2>12</Element.2>
<Element.3>SomeValue 1</Element.3>
<Element.3>SomeValue 2</Element.3>
<Element.4>SomeString</Element.4>
<Element.5>true</Element.5>
由于有外部验证器,我需要精确排序.
I need the ordering to be exact because of an external validator.
推荐答案
您应该能够设置 Order
序列化属性:
You should be able to set the Order
on the serialization attribute:
public class SerializableClass
{
[XmlElement("Element.1", Order = 1)]
public List<string> Element1
{
get { return _Element1; }
set { _Element1 = value; }
}
private List<string> _Element1;
[XmlElement("Element.2", Order = 2)]
public int Element2;
[XmlElement("Element.3", Order = 3)]
public List<string> Element3
{
get { return _Element3; }
set { _Element3 = value; }
}
private List<string> _Element3;
[XmlElement("Element.4", Order = 4)]
public string Element4;
[XmlElement("Element.5", Order = 5)]
public bool Element5;
}
这篇关于序列化时强制 XML 元素匹配类顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文