我刚写了这个SerializationHelper类,但我不敢相信这是必要的!我真的需要写这个“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);
}
}
而且它使用的是这样的:
var serialized = SerializationHelper.Serialize(myObj);
和:
在.NET框架var myObj = SerializationHelper.Deserialize<MyType>(serialized)
我缺少的东西?这不是航天科技!
我在.NET框架中没有看到任何东西来取代你的泛型序列化实现。 – 2010-01-12 16:20:45
这可能是一个从-100开始的特征(用于解释http://blogs.msdn.com/ericlippert/archive/2009/06/15/making-it-easier.aspx)。 BCL设计人员一定不会认为从xml字符串创建对象(反之亦然)是值得为API添加特性的所有工作 - 尤其是*,因为它不是火箭科学! – 2010-01-12 16:22:40
正常情况下,序列化是T的函数,而不是通用的序列化器。这是因为并不总是需要序列化类中的所有内容以便恢复它,因此具有特定知识的类是进行此活动的更好的消息灵通的地方。 – Lazarus 2010-01-12 16:24:20