static void Main(string[] args) { string ruta = AppDomain.CurrentDomain.BaseDirectory + "SerializandoHerencia.xml"; Lista listaDato = new Lista(); listaDato.Items.Add(new Dato("Juan", 20)); listaDato.Items.Add(new Dato("Pedro", 30)); listaDato.Items.Add(new Dato("Martin", 1)); listaDato.Items.Add(new Dato("Micaela", 28)); listaDato.Items.Add(new Dato("Graciela", 50)); listaDato.Items.Add(new Dato("Romina", 9)); try { using (XmlTextWriter Escritor = new XmlTextWriter(ruta, System.Text.Encoding.UTF8)) { XmlSerializer ser = new XmlSerializer((typeof(Lista))); ser.Serialize(Escritor, listaDato); } Console.WriteLine("Objetos serializados con exito en {0}", ruta); Console.WriteLine("Deserializando..."); Console.Clear(); using (XmlTextReader reader = new XmlTextReader(ruta)) { XmlSerializer ser = new XmlSerializer((typeof(Lista))); listaDato = (Lista)ser.Deserialize(reader); } int i = 0; //Se crea un array de la misma cantidad de elementos de la lista Dato[] vec = new Dato[listaDato.Items.Count]; //El metodo 'CopyTo()' copia toda la lista en un array listaDato.Items.CopyTo(vec); for (i = 0; i < listaDato.Items.Count; i++) { Console.WriteLine(vec[i].ToString()); } } catch (Exception ex) { Console.WriteLine(ex); Console.WriteLine("Error al Serializar los Datos"); } finally { Console.WriteLine("Saliendo del programa..."); Console.Read(); } }
static void Main(string[] args) { /************************** * con Serializador Xml * * para n objetos de tipo * * Dato * * ************************/ //Creo un objeto de tipo Lista Lista listaDato = new Lista(); //Declaro una variable de tipo Lista Lista listaDatoXML; char rta; do { //Creo un objeto de tipo Dato Dato aux = new Dato(); Console.WriteLine("Ingrese Nombre: "); aux.nombre = Console.ReadLine(); Console.WriteLine("Ingrese edad: "); aux.edad = int.Parse(Console.ReadLine()); // Se agrega un item a la lista listaDato.Items.Add(aux); Console.WriteLine("Continua??: "); rta = char.Parse(Console.ReadLine()); } while (rta == 's'); Console.WriteLine("Preparado para serializar {0} objetos....", listaDato.Items.Count); Console.ReadLine(); try { using (XmlTextWriter writer = new XmlTextWriter("C:\\DatosLista.xml", System.Text.Encoding.UTF8)) { XmlSerializer ser = new XmlSerializer((typeof(Lista))); ser.Serialize(writer, listaDato); } Console.WriteLine("Objetos serializados con exito en {0}", FILE_NAME); Console.ReadLine(); Console.WriteLine("Deserializando..."); Console.ReadLine(); Console.Clear(); using (XmlTextReader reader = new XmlTextReader(FILE_NAME)) { XmlSerializer ser = new XmlSerializer((typeof(Lista))); listaDatoXML = (Lista)ser.Deserialize(reader); } //Se crea un array de tipo Dato con la misma cantidad //de elementos que la lista Dato[] vec = new Dato[listaDatoXML.Items.Count]; //El metodo 'CopyTo()' copia toda la lista en un array listaDatoXML.Items.CopyTo(vec); //Muestro los datos contenidos en la lista for (int i = 0; i < listaDatoXML.Items.Count; i++) { Console.WriteLine(vec[i].ToString()); } Console.WriteLine("Ordeno la lista...."); Console.ReadLine(); //Utilizo el método Sort para ordenar la lista genérica listaDatoXML.Items.Sort(); //Muestro los datos contenidos en la lista foreach (Dato miDato in listaDatoXML.Items) { Console.WriteLine(miDato.ToString()); } Console.ReadLine(); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine("Error al Serializar/Deserializar los Datos"); } finally { Console.WriteLine("Saliendo del programa..."); Console.ReadLine(); } }