Контроль порядка сериализации в C#
Я использую XmlSerializer для сериализации объекта и записи его в файл. Я добился немалых успехов в том, что сериализатор делает то, что я хочу, с точки зрения вложенности элементов и того, что сериализуется как элементы против атрибутов. К сожалению, я столкнулся с проблемой, когда мне нужен один член класса для сериализации перед другим. В другом месте для меня работает то, что все, что объявлено первым, сериализуется первым, но в этом случае у меня не так много успеха с этим. Есть ли способ вручную контролировать порядок, в котором вещи сериализуются?
2 ответа
Решение
[XmlElementAttribute(Order = 1)]
public int Field1 {...}
[XmlElementAttribute(Order = 2)]
public int Field2 {...}
Поймать: Вы должны указать Order
для всех ваших членов.
XmlElementAttribute.Order
, который контролирует "явный порядок, в котором элементы сериализуются или десериализуются".