Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        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();
            }
        }