Serialización Clase Derivada de HashTable

14/02/2005 - 17:03 por miriampasionLARROB | Informe spam
Hola a todos,

sigo con la deserialización, y tengo un objeto que quiero
serializar a disco o si puedo a un MemoryStream (en
memoria, por cierto, no sé si afectará mucho al
rendimiento serializar en campos blob una gran cantidad
de datos).
El objeto que quiero serializar deriva de Hashtable,
dicha clase ya implementa el interface ISerializable asi
que pienso que todo está bien.

La serialización-deserialización con un objeto Hashtable
funciona bien fine.

La serialización con mi objeto derivado de Hashtable
funciona bien también.

Pero cuando intento deserializarlo, obtengo el siguiente
error:

The constructor to deserialize an object of type ... was
not found


Qué paso se me ha pasado considerar ?

Este es el objeto que utilizo:

[Serializable()]
public class DatosFiltro : System.Collections.Hashtable
{
public DatosFiltro(): base()
{
}

}

Preguntas similare

Leer las respuestas

#1 A.Poblacion
14/02/2005 - 20:14 | Informe spam
El interface ISerializable requiere dos cosas: El método GetObjectData (que
se usa para serializar) y un constructor específico que recibe un
SerializationInfo y un StreamingContext como parámetros (que se usa para
deserializar).

Al heredar de Hashtable, has heredado el GetObjectData, por lo que puedes
serializar tu clase derivada. Pero no tienes en tu clase hija la sobrecarga
del constructor que se necesita para deserializar. Tendrás que definirlo,
aunque no haga dentro nada más que llamar a :base, igual que el constructor
predeterminado que sí que has incluido en tu código.


""
wrote in message news:23de01c512ae$a7fecbb0$

Hola a todos,

El objeto que quiero serializar deriva de Hashtable,
dicha clase ya implementa el interface ISerializable asi
que pienso que todo está bien.

La serialización-deserialización con un objeto Hashtable
funciona bien fine.

La serialización con mi objeto derivado de Hashtable
funciona bien también.

Pero cuando intento deserializarlo, obtengo el siguiente
error:

The constructor to deserialize an object of type ... was
not found


Qué paso se me ha pasado considerar ?

Este es el objeto que utilizo:

[Serializable()]
public class DatosFiltro : System.Collections.Hashtable
{
public DatosFiltro(): base()
{
}

}
Respuesta Responder a este mensaje
#2 Rodrigo Corral [MVP]
14/02/2005 - 23:20 | Informe spam
Además de lo que ha contestado A. Poblacion

Estos articulos cuenta todo lo que hay que saber sobre la serialización:

.NET Column: Run-time Serialization
http://msdn.microsoft.com/msdnmag/i...02/07/net/

.NET Column: Run-time Serialization, Part 2
http://msdn.microsoft.com/msdnmag/i...02/08/net/

.NET Column: Run-time Serialization, Part 3
http://msdn.microsoft.com/msdnmag/i...02/09/net/


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida