Upload
martin-morales
View
213
Download
0
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]