C 類的序列化和反序列化

2021-09-10 06:19:33 字數 1578 閱讀 5998

在很多通訊或者資料儲存的過程中,都需要序列化和反序列化的過程。

在c#中,如果想要進行自定義類的序列化,只需要簡單地在定義類的時候新增serializable標籤即可。如:

[serializable]

publicclassperson

經常用到的序列化方式有兩種:二進位制和xml,分為由system.runtime.serialization.formatters.binary.binaryformatter和system.xml.serialization.xmlserializer實現。

binaryformatter進行序列化和反序列化的時候,不會關心實際型別。但是xmlserializer需要。

自己寫的乙個簡單的序列化輔助類

public static class serializehelper

/// /// 使用指定字元編碼將byte陣列轉成字串

///

///

///

///

public static string converttostring(byte data , encoding encoding)

/// /// 使用utf8編碼將字串轉成byte陣列

///

///

///

public static byte converttobyte(string str)

/// /// 使用指定字元編碼將字串轉成byte陣列

///

///

///

///

public static byte converttobyte(string str , encoding encoding)

/// /// 將物件序列化為二進位制資料

///

///

///

public static byte serializetobinary(object obj)

/// /// 將物件序列化為xml資料

///

///

///

public static byte serializetoxml(object obj)

/// /// 將二進位制資料反序列化

///

///

///

public static object deserializewithbinary(byte data)

/// /// 將二進位制資料反序列化為指定型別物件

///

///

///

///

public static t deserializewithbinary(byte data)

/// /// 將xml資料反序列化為指定型別物件

///

///

///

///

public static t deserializewithxml(byte data)

}

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

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

C 序列化和反序列化

binaryserialize serialize new binaryserialize book book serialize.deserialize book.write 3 測試用的 binaryserialize類 using system using system.collections...

C 序列化和反序列化

對stu類進行序列化和反序列化操作序列化所用到的stu類using system using system.collections.generic using system.linq using system.text public string stuname public int stuage ...