InicioInfoSerializacion de objetos (Programacion)

Serializacion de objetos (Programacion)

Info12/28/2009
A pedido del usuario DAYAO que me pidio que diera ejemplos de esta tecnica les digo la forma de serializar objetos.

ACARACION: Personalmente programo con Visual Studio 2005 en Español y en .NET

Introduccion:

La serialización (o marshalling en inglés) consiste en un proceso de codificación de un Objeto (programación orientada a objetos) en un medio de almacenamiento (como puede ser un archivo, o un buffer de memoria) con el fin de transmitirlo a través de una conexión en red como una serie de bytes o en un formato humanamente más legible como XML o JSON, entre otros. La serie de bytes o el formato pueden ser usados para crear un nuevo objeto que es idéntico en todo al original, incluido su estado interno (por tanto, el nuevo objeto es un clon del original). La serialización es un mecanismo ampliamente usado para transportar objetos a través de una red, para hacer persistente un objeto en un archivo o base de datos, o para distribuir objetos idénticos a varias aplicaciones o localizaciones.

Codigo:


Imports System.IO '<- imports para poder guardar lo que serialicemos
Imports System.Runtime.Serialization '<- imports para poder serializar el objeto que queremos

Dim lista_palabras As New List (Of String) '<- objeto que vamos a serializar

Public Function serializar_obj() '<- funcion que va a serializar el objeto

Dim archivo As Stream = File.Create("c:\objeto") '<- se crea un objeto stream dandole como parametro la ruta y el nombre del archivo a guardar.
Dim serializer As New Formatters.Binary.BinaryFormatter() '<- se crea el objeto que va a serializar.
serializer.Serialize(archivo, lista_palabras) '<- se llama al objeto que va a serializar pasandole como parametros el objeto stream que creamos antes donde se va a guardar lo que serialicemos y lo que queremos serializar, en este caso el objeto "lista_palabras".
archivo.Close() '<- se cierra el objeto "archivo" para asi terminar de guardarlo.

Return Nothing
End Function



Public Function deserializar_obj() '<- funcion que va a deserializar el objeto

Dim archivo As Stream = File.OpenRead("c:\objeto") '<- se crea un objeto stream dandole como parametro la ruta y el nombre del archivo que guardamos antes, el que se va a deserializar.
Dim deserializer As New Formatters.Binary.BinaryFormatter() '<- se crea el objeto que va a deserializar.
lista_palabras = CType(deserializer.Deserialize(archivo), List(Of String)) '<-1: al objeto "lista_palabras" se le asigna el resultado del CType pasandole como parametros el objeto que va a deserializar y el tipo se supone que es, en este caso un List (Of String). 2: Al primer parametro del CType que era el objeto que deserializa a su vez hay que pasarle como parametro el objeto "archivo" que es el archivo que se serializo anteriormente,
archivo.Close() '<- se cierra el objeto "archivo".

Return Nothing
End Function



De esta forma se puede persistir el contenido o valores de objetos, lo unico a tener en cuenta es que los objetos en el momento de ejecucion son almacenados en memoria, como en el ejemplo, si se llegara a deserializar una lista de string que almacena millones de lineas estas pasarian a memoria y podria llegar a sobrecargarse, este metodo se utiliza cuando quermos guardar los valores de objetos pequeños, para almacenar tantos string es preferible guardarlo en un txt o en una base de datos ya sea sql, access u otras.

Espero que les sirva y como no soy un super hacker o el mega programador acepto criticas constructivas y/o sugerencias, el codigo que puse como ejemplo lo uso habitualmente el varias alicaciones que he hecho y funciona, si los capos que saben muchos ven que me equivoque avicen.

Saludos y Comenten.-
Datos archivados del Taringa! original
85puntos
6,873visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
5visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

m
mrma3do🇦🇷
Usuario
Puntos0
Posts1
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.