Serializacion y deserializacion

01/03/2006 - 18:26 por Juan Martinez | Informe spam
Tengo una clase que me crea un objeto personalizado y cuando guardo un
archivo serializo todos los objetos que quiero guardar utilizo:

FileStream str = new FileStream(ruta, FileMode.Create,
FileAccess.Write);

BinaryFormatter binario = new BinaryFormatter();

SurrogateSelector surr = new SurrogateSelector();

PStream pstr = new PStream(str);

pstr.WriteObjectTree(binario, Objetos);

str.Close();

en "Objetos" va incluido todo lo que deseo guardar, al principio me
marcaba error en la clase que mencionaba, decia que la clase no estaba
marcada como serializable asi agregue [Serializable()] antes de mi clase
y ya lo pude guardar, pero al momento de querer abrir el archivo me
marca una excepcion que dice que no se encuentra en la clase un
contructor para deserializar un objeto del tipo de mi clase, para abrir
el archivo utilizo:

FileStream str = new FileStream(ruta, FileMode.Open, FileAccess.Read);

BinaryFormatter binario = new BinaryFormatter();

SurrogateSelector surr = new SurrogateSelector();

binario.SurrogateSelector = surr;

PStream pstr = new PStream(str);

ArrayList listaLeida = (ArrayList)pstr.ReadObjectTree(binario);

str.Close();

Alguien sabe algo de como puedo hacer un contructor para deserializar el
objeto de mi clase???






*** Sent via Developersdex http://www.developersdex.com ***
 

Leer las respuestas

#1 José Escrich
02/03/2006 - 02:56 | Informe spam
Juan,

Fijate de implementar ISerializable ó bien agregarle este constructor a tu
clase

#region ISerializable Members

/// <summary>
/// Required constructor for deserialization.
/// </summary>
protected MyClassName(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}

#endregion ISerializable Members


saludos,



José Escrich
jescrich (a) gmail.com
http://latincoder.com

JM> Tengo una clase que me crea un objeto personalizado y cuando guardo
JM> un archivo serializo todos los objetos que quiero guardar utilizo:
JM>
JM> FileStream str = new FileStream(ruta, FileMode.Create,
JM> FileAccess.Write);
JM>
JM> BinaryFormatter binario = new BinaryFormatter();
JM>
JM> SurrogateSelector surr = new SurrogateSelector();
JM>
JM> PStream pstr = new PStream(str);
JM>
JM> pstr.WriteObjectTree(binario, Objetos);
JM>
JM> str.Close();
JM>
JM> en "Objetos" va incluido todo lo que deseo guardar, al principio me
JM> marcaba error en la clase que mencionaba, decia que la clase no
JM> estaba marcada como serializable asi agregue [Serializable()] antes
JM> de mi clase y ya lo pude guardar, pero al momento de querer abrir el
JM> archivo me marca una excepcion que dice que no se encuentra en la
JM> clase un contructor para deserializar un objeto del tipo de mi
JM> clase, para abrir el archivo utilizo:
JM>
JM> FileStream str = new FileStream(ruta, FileMode.Open,
JM> FileAccess.Read);
JM>
JM> BinaryFormatter binario = new BinaryFormatter();
JM>
JM> SurrogateSelector surr = new SurrogateSelector();
JM>
JM> binario.SurrogateSelector = surr;
JM>
JM> PStream pstr = new PStream(str);
JM>
JM> ArrayList listaLeida = (ArrayList)pstr.ReadObjectTree(binario);
JM>
JM> str.Close();
JM>
JM> Alguien sabe algo de como puedo hacer un contructor para
JM> deserializar el objeto de mi clase???
JM>
JM> *** Sent via Developersdex http://www.developersdex.com ***
JM>

Preguntas similares