10
 Programación orientada a objetos en C# .NET Ing. Bruno López Takeyas, M.C. http://www.itnuevolaredo.edu.mx/Takeyas 1 CAPÍTULO 9 SERIALIZACIÓN (ALMACENAMIENTO DE OBJETOS EN ARCHIVOS) 2 Serialización Es el proceso para almacenar un objeto en un dispositivo de almacen amiento secundario.  Almacena r un objeto en un archi vo en el disco duro, memoria USB, CD, etc. 3

09.-Serializacion

Embed Size (px)

DESCRIPTION

c# parte Seriallizacion

Citation preview

  • Programacin orientada a objetos en C# .NET

    Ing. Bruno Lpez Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 1

    CAPTULO 9SERIALIZACIN

    (ALMACENAMIENTO DE OBJETOS EN ARCHIVOS)

    2

    Serializacin

    Es el proceso para almacenar unobjeto en un dispositivo dealmacenamiento secundario.

    Almacenar un objeto en un archivoen el disco duro, memoria USB, CD,etc.

    3

  • Programacin orientada a objetos en C# .NET

    Ing. Bruno Lpez Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 2

    Para qu sirve la serializacin?

    Para transformar los datos y podertransferirlos por un canal decomunicacin (internet, archivo,memoria, etc.)

    Para compartir informacin de unsistema en otra aplicacin.

    4

    Tipos de serializacin en el Framework .NET

    Tipos de serializacin

    Binario

    SOAP

    XML

    5

  • Programacin orientada a objetos en C# .NET

    Ing. Bruno Lpez Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 3

    Cmo preparar una clase para serializar sus objetos?

    Durante la serializacin, los atributos,nombre de la clase y su ensamblado seconvierten en una secuencia de bytes.

    Para serializar un objeto, su clase debedeclararse como [Serializable]

    6

    Ejemplo en UML

    7

  • Programacin orientada a objetos en C# .NET

    Ing. Bruno Lpez Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 4

    Ejemplo codificado en C#

    8

    [Serializable]class Empleado{

    // Atributos privados

    // Propiedades pblicas

    }

    Espacios de nombres requeridos

    using System.IO; // Para el uso

    de archivos

    using

    System.Runtime.Serialization.For

    matters.Binary; // Para el uso

    de la serializacin

    9

  • Programacin orientada a objetos en C# .NET

    Ing. Bruno Lpez Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 5

    Crear un archivoPara grabar datos en un archivo, primero debe

    crearse mediante:

    // Declaracin del flujo delarchivoprivate System.IO.FileStream flujo;

    // Creacin del archivoflujo = new FileStream(NombreArchivo, FileMode.Create);

    10

    Serializar el archivo creado

    Declaracin del formateador paraserializar el archivo

    System.Runtime.Serialization.Formatters.Binary.Bina

    ryFormatter seriador;

    seriador = new BinaryFormatter();

    11

  • Programacin orientada a objetos en C# .NET

    Ing. Bruno Lpez Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 6

    Cmo grabar un objeto en el archivo serializado?

    Almacena miObjeto en el archivocontrolado por flujo

    seriador.Serialize(flujo, miObjeto);

    12

    Cerrar el archivo

    Una vez usado el archivo, entonces debecerrarse mediante:

    if (flujo != null)

    flujo.Close();

    13

  • Programacin orientada a objetos en C# .NET

    Ing. Bruno Lpez Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 7

    Abrir un archivo en modo lecturaPara leer datos de un archivo, primero debe

    abrirse mediante:

    // Declaracin del flujo delarchivoprivate System.IO.FileStream flujo;

    // Apertura del archivoflujo = new FileStream(NombreArchivo, FileMode.Open);

    14

    Serializar el archivo abierto en modolectura

    Declaracin del formateador paraserializar el archivo

    System.Runtime.Serialization.Formatters.Binary.Bina

    ryFormatter seriador;

    seriador = new BinaryFormatter();

    15

  • Programacin orientada a objetos en C# .NET

    Ing. Bruno Lpez Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 8

    Cmo leer un objeto del archivoserializado?

    A este proceso se le conoce comodeserializacin.

    Lee miObjeto del archivo controlado porflujo

    miObjeto = seriador.Deserialize(flujo);

    16

    Modos de apertura de archivos(FileMode)

    17

    FileMode Uso

    CreateNew Crea un nuevo archivo. Si el archivo existe dispara una IOException

    Truncate Abrir un archivo existente. Una vez abierto, el archivo ser truncado a cero bytes de longitud.

    Create Crea un nuevo archivo. Si el archivo existe ser sobreescrito.

    Open Abrir un archivo existente. Si no existe dispara una FileNotFoundException.

    OpenOrCreate Abrir un archivo existente, si no existe, lo crea.

    Append Abrir un archivo para agregar datos al final en caso de existir; de lo contrario crea un archivo nuevo.

  • Programacin orientada a objetos en C# .NET

    Ing. Bruno Lpez Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 9

    Modos de acceso de archivos(FileAccess)

    18

    FileAccess Uso

    Read Acceso al archivo en modo de solo lecturaReadWrite Acceso al archivo en modo de lectura y

    escritura

    Write Acceso al archivo en modo de solo escritura

    Cmo detectar si existe un archivo?

    if (File.Exists(NombreArchivo))

    {

    }

    19

  • Programacin orientada a objetos en C# .NET

    Ing. Bruno Lpez Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 10

    Diseo de una clase para el manejo de un archivo serializable

    20

    Otros ttulos del autor

    http://www.itnuevolaredo.edu.mx/Takeyas/Libro

    Bruno Lpez [email protected]