- Curso
- Serialización de datos
- XmlSerialization: Serializar objetos
XmlSerialization: Serializar objetos
Última actualización:
23/08/2020
⁃
Dificultad:
Intermedio
Crea un programa en C# para serializar y deserializar objetos en formato XML. Para ello puede utilizar la clase XmlSerialization
incluida en el espacio de nombres System.Xml.Serialization
.
Primero implementa una clase Persona con tres propiedades (Nombre, Edad y Ciudad). La clase Ciudad tendrá dos propiedades (Nombre y Población). Luego crea un objeto persona y utiliza el serializador del objeto XmlSerialization
para guardar los datos en un archivo xml, más tarde, deserializa el archivo y imprímelo en pantalla. Recuerde preparar un método ToString()
para imprimir la clase Persona.
Entrada
Salida
Solución
using System;
using System.IO;
using System.Text;
using System.Xml.Serialization;
public class SerializacionXml
{
static string nombreArchivo = "out.xml";
public static void Main(string[] args)
{
Persona person = new Persona()
{
Nombre = "Nauj",
Edad = 26,
Ciudad = new Ciudad()
{
Nombre = "Spain",
Poblacion = 13456766
}
};
Serializar(person);
person = Deserializar();
Console.WriteLine(person.ToString());
}
public static void Serializar(Persona p)
{
XmlSerializer ser = new XmlSerializer(typeof(Persona));
using (TextWriter escritor = new StreamWriter(nombreArchivo))
{
ser.Serialize(escritor, p);
}
}
public static Persona Deserializar()
{
Persona p;
XmlSerializer ser = new XmlSerializer(typeof(Persona));
using (TextReader lector = new StreamReader(nombreArchivo))
{
p = (Persona)ser.Deserialize(lector);
}
return p;
}
public class Persona
{
public string Nombre { get; set; }
public int Edad { get; set; }
public Ciudad Ciudad { get; set; }
public override string ToString()
{
StringBuilder str = new StringBuilder();
str.AppendLine("Nombre: " + Nombre);
str.AppendLine("Edad: " + Edad);
str.AppendLine("Ciudad: " + Ciudad.Nombre);
return str.ToString();
}
}
public class Ciudad
{
public string Nombre { get; set; }
public int Poblacion { get; set; }
}
}