C# XmlSerializer写XML文件时 节点顺序是如何控制的?

Anod 2012-07-09 03:28:29
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>
...全文
401 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Anod 2012-07-10
  • 打赏
  • 举报
回复
好吧 自行解决了 发现是[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的顺序?
Anod 2012-07-09
  • 打赏
  • 举报
回复
查阅了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 序列化

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧