Es sencillo obtener una representación XML de nuestras clases con el método ToString, solo hemos de sobrescribirlo por este:
public override string ToString() { XmlSerializer ser = new XmlSerializer(this.GetType()); StringWriter sw = new StringWriter(); ser.Serialize(sw, this); sw.Flush(); sw.Close(); return sw.ToString(); }
También podemos crearlas desde su representación XML:
public static MyClass CreateFromXml(string xml) { XmlSerializer ser = new XmlSerializer(typeof(MyClass)); StringWriter sw = new StringWriter(); return (MyClass) ser.Deserialize(new StringReader(xml)); }
Todo el Código de ejemplo:
public class MyClass { public string Data1 { get; set; } public string Data2 { get; set; } public static MyClass CreateFromXml(string xml) { XmlSerializer ser = new XmlSerializer(typeof(MyClass)); StringWriter sw = new StringWriter(); return (MyClass) ser.Deserialize(new StringReader(xml)); } public override string ToString() { XmlSerializer ser = new XmlSerializer(this.GetType()); StringWriter sw = new StringWriter(); ser.Serialize(sw, this); sw.Flush(); sw.Close(); return sw.ToString(); } public void Test() { MyClass c = new MyClass(); c.Data1 = "Hola"; c.Data2 = "Como Estas"; string xMyClass = c.ToString(); MyClass copy = MyClass.CreateFromXml(xMyClass); } }
Nos puede ser muy útil para temas de log, guardar los datos en las desconexiones, para debugear o para transportar la clases en XML entre aplicaciones.



