您热衷于属性的顺序,那么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">
如您所见,如果您切换代码行,则顺序会更改。
但请注意,实现此接口会覆盖默认过程,让您自己编写整个序列化/反序列化过程。
小心谨慎