2010-07-30 18 views
12

Utilizzo un XmlSerializer per serializzare un oggetto e scriverlo in un file. Ho avuto un bel po 'di successo con il serializzatore che fa ciò che voglio che faccia in termini di elementi di nidificazione e ciò che è serializzato come elementi rispetto agli attributi. Sfortunatamente, ho incontrato un problema in cui ho bisogno di un membro di una classe per serializzare prima di un altro. Altrove ha funzionato per me che qualsiasi cosa venga dichiarata prima viene serializzata per prima, ma in questo caso non sto ottenendo così tanto successo con quello. C'è un modo per controllare manualmente l'ordine in cui le cose sono serializzate?Controllo dell'ordine di serializzazione in C#

risposta

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

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

cattura: è necessario specificare il Order per tutti i membri.

+0

Perfetto. Immagino di averlo perso su MSDN o di non aver digerito abbastanza per trovarlo. Grazie. – Zannjaminderson

+0

Eventualmente correlato: esiste un modo per controllare l'ordine con attributi XML? 'XmlAttributeAttribute' non ha una tale proprietà. –

+1

@Travis: Nella mia esperienza, ci sono meno problemi (se ce ne sono) nell'ottenere serializzazione degli attributi nell'ordine in cui sono dichiarati. –