2010-07-30 3 views
12

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

ответ

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

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

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

+0

Perfect. Думаю, я либо пропустил это на MSDN, либо не выкопал достаточно, чтобы найти его. Благодарю. – Zannjaminderson

+0

Возможно, связано: есть ли способ контролировать заказ с помощью XML-атрибутов? 'XmlAttributeAttribute' не обладает таким свойством. –

+1

@Travis: По моему опыту, есть меньше (если есть) проблем с получением атрибутов для сериализации в том порядке, в котором они объявлены. –

2

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

Смежные вопросы