序列化时强制 XML 元素匹配类顺序 [英] Force XML elements to match the class order when serializing

查看:38
本文介绍了序列化时强制 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆