Actualizacion de fichero con Serializacion

26/11/2003 - 11:12 por Pineda | Informe spam
Hola a todos, antes de nada GRACIAS por vuestro tiempo
Mi problema es el siguiente, tengo esta clase:

[Serializable()]
public class SDataV1()
{
private int a;
private int b;
private int c;
}

y resulta que ahora me doy cuenta de que me hace falta una variable (bueno,
exactamente, el cliente es el que se ha dado cuenta, aunque eso no venia al
caso).

Entonces modifico la clase SDataV1 para que contenga las nuevas variables,
quedando:

[Serializable()]
public class SDataV1()
{
private int a;
private int b;
private int c;

//Esto es lo añadido...
string sa;
int cc;
}

Ademas me creo otra clase, como era la clase SDataV1, para intentar abrir
con la clase SDataOld los ficheros serializados con la anterior.

[Serializable()]
public class SDataVOld()
{
private int a;
private int b;
private int c;
}

Pero no se como convertir de la clase SDataV1 a la SDataVOld, porque al
hacer el deserialization, me da error en las variables que tiene la clase
SDataV1, ya que he podido descubrir que en la información de serializacion
se guarda la clase origen, porlo que supongo, que internamente tomara la
SDataV1 y no la SDataVOld.

¿Qué puedo hacer, y cómo?
Gracias, si necesitais aclaraciones pedidlas, os las hare llegar, si puedo
;-D

Pineda.
 

Leer las respuestas

#1 Michael Giagnocavo [MVP]
26/11/2003 - 15:59 | Informe spam
Si implementas ISerializable, tendras control sobre la serializacion. Asi
puedes leer una estructura de datos viejos y anadir los valores default
manualmente.
-mike
MVP

"Pineda" @NoSpam.com> wrote in message
news:%
Hola a todos, antes de nada GRACIAS por vuestro tiempo
Mi problema es el siguiente, tengo esta clase:

[Serializable()]
public class SDataV1()
{
private int a;
private int b;
private int c;
}

y resulta que ahora me doy cuenta de que me hace falta una variable


(bueno,
exactamente, el cliente es el que se ha dado cuenta, aunque eso no venia


al
caso).

Entonces modifico la clase SDataV1 para que contenga las nuevas variables,
quedando:

[Serializable()]
public class SDataV1()
{
private int a;
private int b;
private int c;

//Esto es lo añadido...
string sa;
int cc;
}

Ademas me creo otra clase, como era la clase SDataV1, para intentar abrir
con la clase SDataOld los ficheros serializados con la anterior.

[Serializable()]
public class SDataVOld()
{
private int a;
private int b;
private int c;
}

Pero no se como convertir de la clase SDataV1 a la SDataVOld, porque al
hacer el deserialization, me da error en las variables que tiene la clase
SDataV1, ya que he podido descubrir que en la información de serializacion
se guarda la clase origen, porlo que supongo, que internamente tomara la
SDataV1 y no la SDataVOld.

¿Qué puedo hacer, y cómo?
Gracias, si necesitais aclaraciones pedidlas, os las hare llegar, si puedo
;-D

Pineda.


Preguntas similares