tutorial - xdocument c# example
De/Serialize directamente a/desde XML Linq (1)
Algo como esto ?
public XDocument Serialize<T>(T source)
{
XDocument target = new XDocument();
XmlSerializer s = new XmlSerializer(typeof(T));
System.Xml.XmlWriter writer = target.CreateWriter();
s.Serialize(writer, source);
writer.Close();
return target;
}
public void Test1()
{
MyClass c = new MyClass() { SomeValue = "bar" };
XDocument doc = Serialize<MyClass>(c);
Console.WriteLine(doc.ToString());
}
¿Hay alguna forma de de / serializar un objeto sin un disparo circular de XmlDocument / temp string? Estoy buscando algo como lo siguiente:
class Program
{
static void Main(string[] args)
{
XDocument doc = new XDocument();
MyClass c = new MyClass();
c.SomeValue = "bar";
doc.Add(c);
Console.Write(doc.ToString());
Console.ReadLine();
}
}
[XmlRoot(ElementName="test")]
public class MyClass
{
[XmlElement(ElementName = "someValue")]
public string SomeValue { get; set; }
}
Me sale un error cuando hago eso (no se pueden agregar caracteres de espacios en blanco al contenido). Si envuelvo la clase en el elemento, veo que el contenido escrito es <element> ConsoleApplication17.MyClass </ element> - entonces el error tiene sentido.
Tengo métodos de extensión para de / serializar automáticamente, pero eso no es lo que estoy buscando (esto es del lado del cliente, pero aún me gustaría algo más óptimo).
¿Algunas ideas?