Acabo de escribir este SerializationHelper clase, pero no puedo creer que sea necesario.¿Realmente necesito escribir este "SerializationHelper"?
using System.IO;
using System.Xml.Serialization;
public static class SerializationHelper
{
public static string Serialize<T>(T obj)
{
var outStream = new StringWriter();
var ser = new XmlSerializer(typeof(T));
ser.Serialize(outStream, obj);
return outStream.ToString();
}
public static T Deserialize<T>(string serialized)
{
var inStream = new StringReader(serialized);
var ser = new XmlSerializer(typeof(T));
return (T)ser.Deserialize(inStream);
}
}
y se usa así:
var serialized = SerializationHelper.Serialize(myObj);
y:
var myObj = SerializationHelper.Deserialize<MyType>(serialized)
Me estoy perdiendo algo en la plataforma .NET? ¡Esto no es ciencia de cohetes!
No he visto nada en el marco .NET para suplantar su implementación de Serialize genérica. –
Probablemente se trate de características que comienzan en -100 (parafraseando http://blogs.msdn.com/ericlippert/archive/2009/06/15/making-it-easier.aspx). Los diseñadores BCL no deben haber pensado que la creación de objetos a partir de cadenas xml (y viceversa) merecía todo el trabajo necesario para agregar una función a la API, en particular *, ¡ya que no es ciencia! –
Normalmente, la serialización es una función de T, en lugar de un serializador genérico. Esto se debe a que no siempre es necesario serializar todo de una clase para restaurarlo, por lo que la clase con el conocimiento específico es el lugar mejor informado para realizar esta actividad. – Lazarus