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.

Preguntas similare

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.


Respuesta Responder a este mensaje
#2 Pineda
26/11/2003 - 17:35 | Informe spam
Muchas gracias Michael, así es justo como lo he solucionado. Pense que podia
haber otra forma, pero he conseguido ajustarla. Gracias otra vez.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida