Controllo delle versioni

.NET Framework supporta il controllo delle versioni e l'esecuzione affiancata. Tutte le classi funzionano in più versioni se le relative interfacce rimangono le stesse. Poiché la serializzazione interessa le variabili membro e non le interfacce, è opportuno prestare attenzione quando si aggiungono o rimuovono variabili membro dalle classi che verranno serializzate in più versioni, specialmente nel caso di classi che non implementano l'interfaccia ISerializable. Qualsiasi modifica dello stato della versione corrente, quale l'aggiunta di variabili membro, la modifica dei tipi o dei nomi di variabili, renderà impossibile la corretta deserializzazione degli oggetti esistenti dello stesso tipo se questi sono stati serializzati con una versione precedente.

Se è necessario modificare lo stato di un oggetto da una versione all'altra, i modificatori della classe hanno due possibilità:

  • Implementare ISerializable per assumere il controllo dei processi di serializzazione e di deserializzazione e poter quindi aggiungere e interpretare correttamente lo stato futuro durante la deserializzazione.
  • Contrassegnare con l'attributo NonSerialized le variabili membro non essenziali. Questa opzione deve essere utilizzata solo quando si prevedono cambiamenti secondari da una versione all'altra di una classe. Quando, ad esempio, una nuova variabile è stata aggiunta a una versione successiva di una classe, la variabile può essere contrassegnata come NonSerialized in modo che la classe rimanga compatibile con le versioni precedenti.

Vedere anche

Serializzazione binaria | Accesso a oggetti in altri domini applicazione mediante .NET Remoting | Serializzazione XML