Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Serialización y Deserialización en C#: Un Ejemplo Práctico

Serialización y Deserialización en C#

La serialización y deserialización son esenciales cuando los datos de objeto deben moverse entre aplicaciones o persistir entre sesiones. En C#, la serialización escribe el estado de un objeto a un medio de almacenamiento—comúnmente un archivo—mientras la deserialización reconstruye el objeto desde esa representación almacenada.

Considere una clase simple, Tutorial, que contiene dos propiedades: ID y Name. Al serializar una instancia de esta clase a un archivo, luego podemos leer el archivo y recrear el mismo objeto con sus datos originales intactos.

Cómo Serializar un Objeto en C#

A continuación un recorrido paso a paso que demuestra el proceso en una aplicación de consola.

  1. Crear una clase Tutorial con las propiedades ID y Name.
  2. Instanciar la clase, asignando ID = 1 y Name = ".Net".
  3. Serializar el objeto a un archivo llamado Example.txt.
  4. Deserializar el objeto desde el archivo y mostrar sus valores en la consola.

Pegue el siguiente código en su archivo Program.cs.

Paso 1) Añada la clase. El primer paso es añadir la clase que será serializada.

Serialización y Deserialización en C#: Un Ejemplo Práctico

Explicación del Código:

  1. La clase debe marcarse con el atributo [Serializable]; de lo contrario la serialización fallará.
  2. Definir la clase Tutorial con dos campos: int ID y string Name.

Paso 2) Crear el objeto y serializarlo. En este paso, instanciamos el objeto Tutorial y lo escribimos en Example.txt.

Serialización y Deserialización en C#: Un Ejemplo Práctico

Explicación del Código:

  1. Crear una instancia de Tutorial y establecer ID = 1 y Name = ".Net".
  2. Instanciar un BinaryFormatter (nota: BinaryFormatter está obsoleto en .NET 5+; considere System.Text.Json o XmlSerializer para código de producción).
  3. Abrir un FileStream en FileMode.Create y FileAccess.Write para escribir datos binarios.
  4. Llamar a formatter.Serialize para escribir el objeto en el stream, luego cerrar el stream.

Paso 3) Deserializar el objeto. Finalmente, leer los datos de vuelta del archivo para verificar el proceso.

Serialización y Deserialización en C#: Un Ejemplo Práctico

using System; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; namespace DemoApplication { [Serializable] class Tutorial { public int ID; public string Name; static void Main(string[] args) { Tutorial obj = new Tutorial(); obj.ID = 1; obj.Name = ".Net"; IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream("E:\\ExampleNew.txt", FileMode.Create, FileAccess.Write); formatter.Serialize(stream, obj); stream.Close(); stream = new FileStream("E:\\ExampleNew.txt", FileMode.Open, FileAccess.Read); Tutorial objnew = (Tutorial)formatter.Deserialize(stream); Console.WriteLine(objnew.ID); Console.WriteLine(objnew.Name); Console.ReadKey(); } } }

Explicación del Código:

  1. Abrir el archivo en modo lectura.
  2. Deserializar los datos binarios de vuelta a una instancia de Tutorial.
  3. Imprimir el ID y Name en la consola.

Ejecutar el programa en Visual Studio produce la siguiente salida:

Salida:

Serialización y Deserialización en C#: Un Ejemplo Práctico

Como se muestra, los valores fueron recuperados correctamente del archivo.

Resumen

La serialización escribe datos de objeto a un archivo, mientras la deserialización lee esos datos de vuelta a un objeto. Esta técnica fundamental sustenta muchos escenarios de intercambio de datos en .NET.

Lenguaje C

  1. Clases y objetos en C#: Fundamentos para POO robusta
  2. Dominando clases y métodos abstractos en C#: Guía práctica
  3. Entendiendo clases y métodos parciales en C#
  4. Dominando clases y métodos sealed en C#: Cuándo usarlos, ejemplos claros y mejora de seguridad y rendimiento
  5. Operadores en C++ explicados: Tipos, ejemplos y programas de muestra
  6. Clases y objetos en C++: Guía práctica con ejemplos de código
  7. Struct vs Class en C++: Diferencias Clave, Sintaxis y Mejores Casos de Uso
  8. Clases Abstractas en C#: Tutorial Práctico con Ejemplos de Código
  9. Entendiendo type() e isinstance() en Python: ejemplos prácticos
  10. Dominando las operaciones de archivos en Java con java.io: creación, lectura, escritura y eliminación
  11. Lectura de archivos en Java con BufferedReader – Guía práctica con ejemplos