Подтвердить что ты не робот

Управление порядком сериализации в С#

Я использую XmlSerializer для сериализации объекта и записи его в файл. У меня был довольно большой успех, когда сериализатор выполнял то, что я хочу, чтобы сделать это с точки зрения вложенности элементов и сериализован как элементы с атрибутами. К сожалению, у меня возникла проблема, когда мне нужен один член класса для сериализации перед другим. В другом месте это работало для меня, что все, что было объявлено, сначала получает сериализацию в первую очередь, но в этом случае я не имею столь большого успеха с этим. Есть ли способ вручную управлять порядком, в котором вещи сериализуются?

4b9b3361

Ответ 1

[XmlElementAttribute(Order = 1)] 
public int Field1 {...} 

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

Поймать: Вы должны указать Order для всех ваших членов.

Будьте осторожны - десериализация будет работать только в том случае, если свойства в документе XML находятся в том же порядке. В противном случае он будет игнорировать неупорядоченные свойства.

Ответ 2

XmlElementAttribute.Order, который управляет "явным порядком, в котором элементы сериализованы или десериализованы".