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>
{ 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>
[XmlElement(ElementName = "TaxRate")]
public decimal ReturnTaxRate;
}MSDN:http://msdn.microsoft.com/zh-cn/library/2baksw0z(v=vs.80)使用属性控制 XML 序列化
[System.Xml.Serializer.XmlAtrribute(AttributeName = "TaxRate")]
public string ReturnTaxRate;
[System.Xml.Serializer.XmlAtrribute(AttributeName = "Name")]
public string ReturnTaxName;
}如何控制XML文档中TaxRate与Name的顺序?