Você está na página 1de 4

Fundamentos de la

serializacin de .NET
Framework
Otras versiones

Actualizacin: noviembre 2007


La serializacin es el proceso de convertir un objeto en una secuencia de bytes para
conservarlo en memoria, una base de datos o un archivo. Su propsito principal es
guardar el estado de un objeto para poder crearlo de nuevo cuando se necesita. El
proceso inverso se denomina deserializacin.

Cmo funciona la serializacin


Este ejemplo muestra el proceso total de serializacin.

El objeto se serializa en una secuencia que, adems de los datos, contiene informacin
sobre el tipo de objeto, como la versin, referencia cultural y nombre de ensamblado.
Esa secuencia se puede almacenar en una base de datos, un archivo o en memoria.

Usos de la serializacin
La serializacin permite al desarrollador guardar el estado de un objeto y volver a
crearlo cuando es necesario, y proporcionar almacenamiento de objetos e intercambio
de datos. A travs de la serializacin, un desarrollador puede realizar acciones como
enviar un objeto a una aplicacin remota por medio de un servicio Web, pasar un
objeto de un dominio a otro, pasar un objeto a travs de un firewall como una cadena
XML o mantener la seguridad o informacin especfica del usuario entre aplicaciones.

Crear un objeto serializable

Para serializar un objeto, se necesita que el objeto est serializado, una secuencia que
contenga el objeto serializado y un objeto Formatter. La
enumeracin System.Runtime.Serialization contiene las clases necesarias para
serializar y deserializar objetos.

Aplique el atributo SerializableAttribute a un tipo para indicar que se pueden serializar


las instancias de ese tipo. Se produce una excepcinSerializationException si se intenta
serializar pero el tipo no tiene el atributo SerializableAttribute.
Si no desea que un campo de su clase se pueda serializar, aplique el
atributo NonSerializedAttribute. Si un campo de un tipo serializable contiene un
puntero, controlador u otra estructura de datos especfica de un entorno determinado,
y el significado del campo no se puede reconstruir en un entorno diferente, es
conveniente que no sea serializable.
Si una clase serializada contiene referencias a objetos de otras clases marcadas con el
atributo SerializableAttribute, esos objetos tambin se serializarn.

Serializacin binaria y XML


Se puede utilizar serializacin binaria o XML. En la serializacin binaria, se serializan
todos los miembros, incluso aquellos que son de slo lectura, y se mejora el
rendimiento. La serializacin XML proporciona cdigo ms legible, as como mayor
flexibilidad para compartir objetos y utilizarlos para fines de interoperabilidad.

Serializacin binaria
La serializacin binaria utiliza la codificacin binaria a fin de generar una serializacin
compacta para usos como almacenamiento o secuencias de red basadas en sockets.
No es conveniente pasar los datos a travs de un firewall, pero proporciona mejor
rendimiento al almacenarlos.

Serializacin XML

La serializacin XML serializa las propiedades y campos pblicos de un objeto o los


parmetros y valores devueltos de los mtodos en una secuencia XML que se ajusta a
un documento especfico del lenguaje de definicin de esquemas XML (XSD). La
serializacin XML produce clases con establecimiento inflexible de tipos cuyas
propiedades y campos se convierten a XML. La
enumeracin System.Xml.Serialization contiene las clases necesarias para serializar y
deserializar XML.
Se pueden aplicar atributos a clases y miembros de clase para controlar la manera en
que XmlSerializer serializa o deserializa una instancia de la clase. Para obtener ms
informacin, vea Controlar la serializacin XML mediante atributos y Atributos que
controlan la serializacin XML.
En esta tabla se muestran tareas asociadas a la serializacin XML:

Para

Vea

Serializar un objeto

Cmo: Serializar un objeto

Deserializar un objeto

Cmo: Deserializar un objeto

Generar clases y documentacin del


esquema XML

Cmo: Utilizar la herramienta de definicin de


esquema XML para generar clases y documentos
de esquema XML

Calificar el elemento XML y los


nombres del atributo XML

Cmo: Calificar el elemento XML y los nombres


del atributo XML

Especificar un nombre de elemento


alternativo para una secuencia XML

Cmo: Especificar un nombre de elemento


alternativo para una secuencia XML

Controlar la serializacin de clases


derivadas

Cmo: Controlar la serializacin de clases


derivadas

Serializacin SOAP
La serializacin XML tambin se puede usar para serializar objetos en secuencias XML
que se ajustan a la especificacin SOAP. SOAP es un protocolo basado en XML,
diseado especficamente para transportar llamadas a procedimiento utilizando XML. Al
igual que la serializacin XML normal, estos atributos tambin pueden utilizarse para
controlar los mensajes SOAP de estilo literal que genera un servicio Web XML. Para
obtener ms informacin, vea Serializacin XML con servicios web XML y Atributos que
controlan la serializacin SOAP codificada.
En esta tabla se muestran tareas asociadas a la serializacin XML con codificacin
SOAP:

Para

Vea

Serializar un objeto como secuencia


XML con codificacin SOAP

Cmo: Serializar un objeto como secuencia


XML con codificacin SOAP

Reemplazar la serializacin XML con


codificacin SOAP

Cmo: Invalidar la serializacin XML SOAP


codificada

Serializacin bsica y personalizada


La serializacin se puede realizar de dos maneras: bsica y personalizada. La
serializacin bsica utiliza .NET Framework para serializar automticamente el objeto.

Serializacin bsica
El nico requisito de la serializacin bsica es que se haya aplicado el
atributo SerializableAttribute al objeto. NonSerializedAttribute se puede utilizar para
evitar que se serialicen campos concretos.
Cuando se utiliza la serializacin bsica, la versin de objetos puede crear problemas,
en cuyo caso la serializacin personalizada puede ser preferible. La serializacin bsica
es la manera ms fcil de realizar la serializacin, pero no proporciona mucho control
sobre el proceso.

Serializacin personalizada

En serializacin personalizada, se puede especificar exactamente qu objetos se


serializarn y cmo se har. La clase se debe marcar con el
atributo SerializableAttribute y se debe implementar la interfaz ISerializable.
Si desea deserializar el objeto tambin de una manera personalizada, debe utilizar un
constructor personalizado.

Serializacin de diseador
La serializacin de diseador es una forma especial de serializacin en la que
interviene el tipo de persistencia de objeto normalmente asociado a las herramientas
de desarrollo. La serializacin de diseador es el proceso de convertir un grfico de

objetos en un archivo de cdigo fuente que se puede utilizar despus para recuperar el
grfico de objetos. Un archivo de cdigo fuente puede contener cdigo, formato o,
incluso, informacin de la tabla SQL. Para obtener ms informacin, vea Informacin
general sobre serializacin de diseadores.

Você também pode gostar