Sadece bu SerializationHelper sınıfını yazdım, ancak bunun gerekli olduğuna inanamıyorum!Gerçekten bu "SerializationHelper" yazmam gerekiyor mu?
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);
}
}
Ve böyle kullanılır:
var serialized = SerializationHelper.Serialize(myObj);
ve: .NET çerçevesinde
var myObj = SerializationHelper.Deserialize<MyType>(serialized)
Eksik bir şey? Bu roket bilimi değil! Aslında
Genel Serialize uygulamanızı desteklemek için .NET çerçevesinde hiçbir şey görmedim. –
Bu muhtemelen -100 ile başlayan bir özelliktir (http://blogs.msdn.com/ericlippert/archive/2009/06/15/making-it-easier.aspx). BCL tasarımcıları, xml dizelerinden (ve tersi) nesneler oluşturmanın, API'ye bir özellik eklemeye giden tüm çalışmaları hak ettiğini düşünmemelidir - özellikle * roket bilimi olmadığı için! –
Normalde serileştirme, bir jenerik serileştirici yerine T'nin bir fonksiyonudur. Bunun nedeni, her şeyi bir sınıftan geri yüklemek için bir diziden serileştirmenin her zaman gerekli olmamasından dolayı, belirli bir bilgi birikimine sahip sınıf, bu faaliyeti gerçekleştirecek daha iyi bilgilendirilmiş bir yer. – Lazarus