我剛寫了這個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