c#序列化

wisdomone1發表於2012-04-11
  工作中涉及到列印相關的程式碼,具體如下:
///
        /// 將Hashtable序列化為二進位制字串
        ///
        ///
        ///
        private static string GetSerializedHashTable(Hashtable ht)
        {
            string str = string.Empty;
            using (MemoryStream memStream = new MemoryStream())
            {
                BinaryFormatter binaryFormatter = new BinaryFormatter();
                binaryFormatter.Serialize(memStream, ht);   //序列化為二進位制流
                str = Convert.ToBase64String(memStream.ToArray());  //將二進位制流轉變為字串
            }
            return str;
        }

注意,用到了序列化概念;

遂及查詢了相關文件,備記於此.

序列化是將物件狀態轉換為可保持或傳輸的格式的過程。與序列化相對的是反序列化,它將流轉換為物件。這兩個過程結合起來,可以輕鬆地儲存和傳輸資料。

.NET Framework 提供兩種序列化技術:

二進位制序列化保持型別保真度,這對於在應用程式的不同呼叫之間保留物件的狀態很有用。例如,透過將物件序列化到剪貼簿,可在不同的應用程式之間共享物件。您可以將物件序列化到流、磁碟、記憶體和網路等等。遠端處理使用序列化“透過值”在計算機或應用程式域之間傳遞物件。

XML 序列化僅序列化公共屬性和欄位,且不保持型別保真度。當您要提供或使用資料而不限制使用該資料的應用程式時,這一點是很有用的。由於 XML 是一個開放式標準,因此,對於透過 Web 共享資料而言,這是一個很好的選擇。SOAP 同樣是一個開放式標準,這使它也成為一個頗具吸引力的選擇。


System.Runtime.Serialization 名稱空間


序列化專題


System.Runtime.Serialization.Formatters.Binary 名稱空間



BinaryFormatter 類


和泛型一樣,序列化比較難理解和抽象,慢慢來吧.


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-720927/,如需轉載,請註明出處,否則將追究法律責任。

相關文章