我正在使用XmlSerializer序列化对象并将其写入文件。我已经取得了相当大的成功,序列化器在嵌套元素方面做了我想做的事情,以及序列化为元素与属性的内容。不幸的是,我遇到了一个问题,我需要一个类的一个成员在另一个之前序列化。在其他地方,对我来说,无论先声明的是什么,都会先被序列化,但在这种情况下,我并没有取得如此大的成功。有没有办法手动控制事物序列化的顺序?
答案 0 :(得分:28)
[XmlElementAttribute(Order = 1)]
public int Field1 {...}
[XmlElementAttribute(Order = 2)]
public int Field2 {...}
Catch:您必须为所有成员指定Order
。
注意 - 反序列化仅在XML文档中的属性具有相同顺序时才有效。否则它会默默地忽略无序属性。
答案 1 :(得分:2)
XmlElementAttribute.Order
,它控制“元素序列化或反序列化的显式顺序”。