4
我想序列化我的對象圖形爲一個字符串,然後從字符串反序列化它。如果我這樣做使用BinaryFormatter序列化和反序列化對象圖
using (var memStream = new System.IO.MemoryStream())
{
mf.Serialize(memStream, this);
memStream.Seek(0, 0);
Search s;
using (var memStrClone = new System.IO.MemoryStream())
{
memStream.CopyTo(memStrClone);
memStrClone.Seek(0, 0);
s = mf.Deserialize(memStrClone) as Search;
}
}
上面的代碼工作,但序列化到一個字符串,並嘗試反序列化這樣
Search s;
string xml = ToString<Search>(this);
s = FromString<Search>(xml);
public static TType FromString<TType>(string input)
{
var byteArray = Encoding.ASCII.GetBytes(input);
using (var stream = new MemoryStream(byteArray))
{
var bf = new BinaryFormatter();
return (TType)bf.Deserialize(stream);
}
}
public static string ToString<TType>(TType data)
{
using (var ms = new MemoryStream())
{
var bf = new BinaryFormatter();
bf.Serialize(ms, data);
return Encoding.ASCII.GetString(ms.GetBuffer());
}
}
相同的字符串拋出一個異常對象序列化就好
對象類型'1936026741 Core.Sebring.BusinessObjects.Search.Search'沒有程序集標識。
任何幫助,非常感謝。謝謝。
+1爲Base64編碼(用於在ASCII字符串格式的二進制數據)。 – 2013-02-16 22:04:00
我序列化爲字符串,以便我可以將其存儲在數據庫中。如果有更好的方法可以提出建議。 – andrewramka 2013-02-16 23:57:48
您是否可以更新原始問題以包含搜索課程?當我不知道你想要序列化的時候,很難建議。 – Jay 2013-02-17 09:36:39