Ho questa classeStrategia per deserializzazione una classe che è cambiato in .NET
[Serializable]
public class myClass() : ISerializable
{
public int a;
public int b;
public int c;
public void GetObjectData(SerializationInfo info,
StreamingContext context)
{
// Some code
}
public myClass(SerializationInfo info,
StreamingContext context)
{
// Some code
}
}
Ho centinaia di questi oggetti nel mio database. Ora sono pronto a pubblicare una nuova versione della mia app in cui la classe si è trasformato per
[Serializable]
public class myClass() : ISerializable
{
public int a;
public string b;
public int c;
public bool d;
public void GetObjectData(SerializationInfo info,
StreamingContext context)
{
// Some code
}
public myClass(SerializationInfo info,
StreamingContext context)
{
// Some code
}
}
Come ci si deserializzare un oggetto serializzato in base alla prima versione con il costruttore de-serializzazione del secondo.
Esistono anche strategie per la versione futura che verifica la mia seconda versione della classe?
Fai un programma di conversione che legge oggetti del primo tipo, produce oggetti del secondo tipo e sostituisce i vecchi con nuovi. L'esecuzione di quel programma dovrebbe richiedere molto tempo, se si parla di centinaia, non di milioni di record. – dasblinkenlight
C'è un articolo MSDN dedicato a riguardo. Meglio iniziare da lì: http://msdn.microsoft.com/en-US/library/ms229752%28v=vs.90%29.aspx –