C 的序列化與反序列化

2021-08-10 04:06:23 字數 1388 閱讀 5445

最近看了一下同事寫的**,其中包含這麼乙個功能,叫序列化與反序列化。

說一下概念,

序列化: 將資料結構或物件轉換成二進位制串的過程

反序列化:將在序列化過程中所生成的二進位制串轉換成資料結構或者物件的過程

很多情況下,我們需要將資料進行持久化操作,即將資料寫入到檔案中,我們可以通過io操作,或者序列化操作。而序列化可以將乙個物件持久化到檔案中,儲存在二進位制檔案中。

具體可參照msdn:

using system;

using system.io;

using system.runtime.serialization;

using system.runtime.serialization.formatters.binary;

using system.xml.serialization;

}catch (exception ex)

}public static t xmldeserialize(string filepath)

}catch (exception ex)

}public static void binaryserialize(t t, string filepath)

//soapserialize

}catch (exception ex)

}public static t binarydeserialize(string filepath)

//soapdeserialize

}catch (exception ex)}}

[serializable]

public class testserializationobject

public string attr2

public int attr3}}

class program

#region 測試序列化和反序列化

public static void testserializationanddeserialization()

#endregion

}
注意那個被序列化的類,需要使用serializable特性,才能被binary序列化。

看看生成的檔案,

演示了序列化,反序列化你可以試試哦~

console.writeline(serializationanddeserialization.serializationanddeserialization.xmldeserialize(@"f:\1.xml").attr1);
咦,csdn出bug了,經常亂複製,亂關閉視窗。上傳最後不顯示?

序列化和反序列化 C 序列化與反序列化。

序列化介紹 把物件用一種新的格式來表示。系列化只序列化資料。序列化不建議使用自動屬性 為什麼要序列化 將乙個複雜的物件轉換流,方便儲存與資訊交換。class program class person public int age 二進位制序列化 就是將物件變成流的過程,把物件變成byte class...

C 序列化與反序列化

一 概述 當兩個程序在進行遠端通訊時,彼此可以傳送各種型別的資料。無論是何種型別的資料,都會以二進位制序列的形式在網路上傳送。傳送方需要把這個物件轉換為位元組序列,才能在網路上傳送 接收方則需要把位元組序列再恢復為物件。把物件轉換為位元組序列的過程稱為物件的序列化。把位元組序列恢復為物件的過程稱為物...

c 序列化 與 反序列化

gspring永春1 輸出截圖如下 也就是說採用xml序列化的方式只能儲存public的字段和可讀寫的屬性,對於private等型別的字段不能進行序列化 關於迴圈引用 比如在上面的例子book類中加入如下乙個屬性 public book relationbook 在呼叫序列化時使用如下方法 book...