2011-08-18 43 views
0

是否有任何可能將某個類的屬性自動序列化爲byte []數組或流。C#只將值序列化爲字節流

Stream stream = File.Open(@"C:/traiBin.bin", FileMode.Create); 
BinaryFormatter bFormatter = new BinaryFormatter(); 
bFormatter.Serialize(stream, this.rcpt); 
stream.Close(); 

此示例上述序列化的整個類包括命名空間,類名,變量名等 如果沒有自動化的解決方案將通過手去做。

問候, 馬克

+0

其他信息的問題是什麼?噪音很大? – Carsten

+0

是的,它會通過TCP傳輸,格式總是相同的,所以我不想有太多開銷。另一方不能使用二進制格式化程序進行反序列化。 –

+0

你是什麼意思自動解決方案? – Zenwalker

回答

0

我認爲你必須:

或實現自己的序列化機制(根據您的要求可以不那麼辛苦),所以在流,你會有種頭的那標識保存的類型和類型數據流之後,再次讀取另一個標題及其類型數據流,等等......

或者您可以使用類似這樣的東西http://www.codeproject.com/KB/cs/generic_deep_cloning.aspx。只是序列化的一個例子,文章的作者用於深層克隆的目的。

0

Marc Gravell的protobuf implementation支持屬性模型以及DataContracts - 當涉及數據的最終大小時,protobuf也非常精益。

+0

易於使用和一個好主意,但仍會產生開銷。這也是liscenced ... –

+0

在這種情況下,您需要使用'BinaryWriter'並擁有自己的序列化接口(例如'Save(BinaryWriter writer)')。 –

相關問題