控制C#中的序列化顺序

问题描述 投票:14回答:2

我正在使用XmlSerializer序列化对象并将其写入文件。我已经取得了相当大的成功,序列化器在嵌套元素方面做了我想做的事情,以及序列化为元素与属性的内容。不幸的是,我遇到了一个问题,我需要一个类的一个成员在另一个之前序列化。在其他地方,对我来说,无论先声明的是什么,都会先被序列化,但在这种情况下,我并没有取得如此大的成功。有没有办法手动控制事物序列化的顺序?

serialization xmlserializer
2个回答
29
投票
[XmlElementAttribute(Order = 1)] 
public int Field1 {...} 

[XmlElementAttribute(Order = 2)] 
public int Field2 {...} 

捕获:您必须为所有成员指定Order

注意 - 反序列化仅在XML文档中的属性具有相同顺序时才有效。否则它会默默地忽略无序属性。


2
投票

XmlElementAttribute.Order,它控制“元素序列化或反序列化的显式顺序”。

© www.soinside.com 2019 - 2024. All rights reserved.