我可以成功地在xml文件中编写我的类Item。但是,归属的顺序发生了变化......
假设我有Item类
class Item
{
Name
Price
Id
}
当我使用.net xmlserializer将它写入xml文件时,我得到了与我的类声明不同的顺序,例如
<Item Price="y" Name="x" Id="z" />
但我想要这样[保持解除顺序]
<Item Name="x" Price="y" Id="z" />
如何在.NET中执行此操作?
答案 0 :(得分:2)
你不应该对订单感到失望。如果你是,那么你没有正确处理你的xml
第3.1节“注意一个属性规范的顺序 start-tag或empty-element标记并不重要。“
答案 1 :(得分:0)
您热衷于属性的顺序,然后IXmlSerializable
接口将控制类的序列化/反序列化过程。属性的顺序由代码行的顺序决定:
public void WriteXml(XmlWriter writer)
{
//First example xml element
writer.WriteStartElement("Item1");
writer.WriteAttributeString("Name", Name);
writer.WriteAttributeString("Price", Price);
writer.WriteAttributeString("Id", Id);
writer.WriteEndElement();
//Second example xml element
writer.WriteStartElement("Item2");
writer.WriteAttributeString("Price", Price);
writer.WriteAttributeString("Id", Id);
writer.WriteAttributeString("Name", Name);
writer.WriteEndElement();
}
输出:
<Item1 Name="x" Price="y" Id="z">
<Item2 Price="y" Id="z" Name="x">
如您所见,如果您切换代码行,则会更改订单。
但要注意,实现此接口会覆盖默认进程,让您可以编写整个序列化/反序列化过程。
此致 Nautious