tengo esta claseEstrategia para deserializar una clase que ha cambiado en .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
}
}
Tengo cientos de estos objetos en mi base de datos. Ahora estoy listo para publicar una nueva versión de mi aplicación donde la clase se ha transformado a
[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
}
}
¿Cómo se podría deserializar un objeto serializado en base a la primera versión con el constructor de-serialización de la segunda.
¿Existen también estrategias para la futura versión de prueba de mi segunda versión de la clase?
Hacer un programa de conversión que lee objetos del primer tipo, produce objetos del segundo tipo y reemplaza los antiguos por nuevos. Ejecutar ese programa debería llevar mucho tiempo, si se trata de cientos, no millones de registros. – dasblinkenlight
Hay un artículo dedicado de MSDN al respecto. Mejor comenzar allí: http://msdn.microsoft.com/en-US/library/ms229752%28v=vs.90%29.aspx –