|
Serializar/Deserializar en c# |
|
|
Escrito por Marcos
|
|
Viernes, 11 de Junio de 2010 20:02 |
|
Voy a explicar como serializar y deserializar una lista tipificada en c#.
En mi caso lo utilicé porque tenia una lista con varios objetos, cada uno de los cuales contenía una configuración.
El usuario configuraba estos objetos y para guardar del tiron toda esta configuracion en un fichero y luego porder cargarla utilicé la serialización.
Cuando hablo de "configuracion" me refiero al valor de todos los atributos y propiedades, tanto privados como publicos.
A la clase hay que añadirla el atributo
[Serializable()] public class Camara { . . .
La lista se llama "camaras" y es una IList<Camara>.
Para serializar:
StreamWriter w = new StreamWriter("config.cfg" ); MemoryStream memoryStream = new MemoryStream(); BinaryFormatter binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(memoryStream, this.camaras); string str = System.Convert.ToBase64String(memoryStream.ToArray()); w.WriteLine(str); w.Flush(); w.Close();
Para deserializar:
StreamReader sr = new StreamReader("config.cfg" ); string objectStream = sr.ReadLine(); byte[] memorydata = Convert.FromBase64String(objectStream); MemoryStream rs = new MemoryStream(memorydata); BinaryFormatter sf = new BinaryFormatter(); this.camaras = (IList<Camara>)sf.Deserialize(rs); sr.Close();
Se serializa en Base64.
|
|
Última actualización el Viernes, 11 de Junio de 2010 20:24 |