C# XmlSerializer写XML文件时 节点顺序是如何控制的?即兄弟节点哪个在前哪个在后有什么说法?譬如    public class CCC
    {        public enum XX
        {
            MM=1,
            NN=2
        }
        public XX x = XX.MM;
        public int AA = 6;
        public int aa = 7;     //   public int AAA { get { return AA; } set { AA = value; } }
     //   public int aaa { get { return aa; } set { AA = value; } }        int data1;
        int data2;
        public int Data1
        {
            get { return data1; }
            set { data1 = value; }
        }
        public int Data2
        {
            get { return data2; }
            set { data2 = value; }
        }
        public void Setd1(int a)
        {
            data1 = a;
        }
        public int Setd2(int a)
        {
            return data2 = a;
        }
        public void Getd1(out int a)
        {
            a = data1;
        }
        public int Getd2()
        {
            return data2;
        }        public string str1 = " a fea ";
        public string str2 = " b fae";
        public string Str1
        {
            get { return str1; }
            set { str1 = value; }
        }
        public string Str2
        {
            get { return str2; }
            set { str2 = value; }
        }        public void Set1(string a)
        {
            str1 = a;
        }
        public string Set2(string a)
        {
            return str2 = a;
        }
        public void Get1(out string a)
        {
            a = str1;
        }
        public string Get2()
        {
            return str2;
        }        public CCC myc;
        public void setCCC()
        {
            myc = new CCC();
        }
        public CCC myc1;
        public void setCCC1()
        {
            myc1 = new CCC();
        }
    }我把一个新建的空文件流和如上的一个类的实例(各个值均已初始化过)作为XmlSerializer实例的Serialize方法的参数,生成的Xml文件节点顺序为什么是这样的?<?xml version="1.0"?>
<CCC xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <x>MM</x>
  <AA>6</AA>
  <aa>7</aa>
  <str1>book</str1>
  <str2>author</str2>
  <myc>
    <x>MM</x>
    <AA>6</AA>
    <aa>7</aa>
    <str1>book3</str1>
    <str2>author3</str2>
    <Data1>3</Data1>
    <Data2>4</Data2>
    <Str1>book3</Str1>
    <Str2>author3</Str2>
  </myc>
  <myc1>
    <x>MM</x>
    <AA>6</AA>
    <aa>7</aa>
    <str1> a fea </str1>
    <str2> b fae</str2>
    <Data1>0</Data1>
    <Data2>0</Data2>
    <Str1> a fea </Str1>
    <Str2> b fae</Str2>
  </myc1>
  <Data1>1</Data1>
  <Data2>2</Data2>
  <Str1>book</Str1>
  <Str2>author</Str2>
</CCC>

解决方案 »

  1.   

    查阅了MSDN,但是在使用类似下图中的属性时,竟然提示System.xml.xmlElement不是属性类。public class TaxRates{
        [XmlElement(ElementName = "TaxRate")]
        public decimal ReturnTaxRate;
    }MSDN:http://msdn.microsoft.com/zh-cn/library/2baksw0z(v=vs.80)使用属性控制 XML 序列化
      

  2.   

    好吧 自行解决了 发现是[System.Xml.Serializer.XmlElement(ElementName = "TaxRate")],不知为什么MSDN会错?public class TaxRates{
        [System.Xml.Serializer.XmlAtrribute(AttributeName = "TaxRate")]
        public string ReturnTaxRate;
        [System.Xml.Serializer.XmlAtrribute(AttributeName = "Name")]
        public string ReturnTaxName;
    }如何控制XML文档中TaxRate与Name的顺序?