流是字節序列的抽象,如文件,輸入/輸出設備,進程間通信管道或TCP/IP套接字。 Stream類及其派生類提供了這些不同類型的輸入和輸出的通用視圖,將程序員與操作系統和底層設備的特定細節隔離開來。 [MSDN所述]
,所以我想你使用.NET不同的格式,通過使用流使用序列,進行序列化需要定義需求
序列化是在轉換一個目的是字節的持久性存儲裝置的過程。反序列化過程將字節轉換爲對象,而不會丟失任何數據。序列化用於將值存儲在文件或數據庫中,通過網絡發送對象並將其轉換回原始對象格式。 .NET框架提供了一組用於簡化序列化過程的框架類庫(FCL)。在兩個不同應用程序之間發送數據非常有用。
.NET Framework支持二進制序列化和XML序列化格式。 XML序列化僅序列化公共字段。但是,二進制序列化將序列化所有私人和公共領域。序列化可以按照基本或自定義進行。基本序列化發生在一個類應用了SerializableAttribute屬性的時候。基本序列化不支持版本控制。自定義序列化類必須標記爲SerializableAttribute並實現ISerializable接口。用戶可以實現Binary和XML序列化格式的自定義序列化。 GetObjectData需要被自定義應用程序覆蓋。示例應用程序針對二進制和XML序列化使用自定義序列化。 .NET Framework支持與開發工具關聯的設計器序列化。 定製序列化
定製序列化是控制序列化和反序列化過程的過程。自定義序列化可以通過在序列化期間和之後運行自定義方法或通過實現ISerializable接口來實現。自定義序列化用於對序列化對象進行版本控制。如果序列化對象已更改對象狀態(在更高版本中添加了新文件),則使用自定義序列化獲取值而不丟失數據。由於缺少屬性,序列化對象的版本可能會失敗。
如果用戶想要在序列化期間和之後使用自定義方法,用戶應該使用OnDeserializedAttribute,OnDeserializingAttribute,OnSerializedAttribute和OnSerializingAttribute屬性應用自定義序列化支持,以便在序列化和反序列化期間自定義數據。 OptionalFieldAttribute屬性用於忽略用於反序列化的舊版本數據。格式化程序在反序列化過程中不會給出任何錯誤。它允許在序列化/反序列化之前和之後更新對象。
我想下面你
http://www.codeproject.com/Articles/422474/Serialization-using-different-formats-in-NET
來源
2013-03-07 19:45:01
Ali
你指的是什麼魔法鏈接幫助? 'Stream GetAStream(){return new MemoryStream();}'工作。 – 2013-03-07 19:17:09