欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#實(shí)現(xiàn)對象序列化的3種方案小結(jié)

 更新時間:2025年01月21日 10:22:52   作者:上位機(jī)付工  
在上位機(jī)開發(fā)過程中,我們可能經(jīng)常要實(shí)現(xiàn)一個數(shù)據(jù)對象的持久化,本文主要介紹了C#實(shí)現(xiàn)對象序列化的3種方案,具有一定的參考價值,感興趣的可以了解一下

在上位機(jī)開發(fā)過程中,我們可能經(jīng)常要實(shí)現(xiàn)一個數(shù)據(jù)對象的持久化,將對象保存到具體的文件中,今天給大家介紹常用的3種方案,大家根據(jù)實(shí)際情況,選擇適合的方案。

一、準(zhǔn)備工作

在介紹這4種方案之前,我們以西門子PLC信息存儲為例,先提前準(zhǔn)備好一個類——PLCInfo,代碼如下所示:

圖片

我們通過序列化可以將對象轉(zhuǎn)換成一個字符串進(jìn)行存儲,同時通過反序列化可以將該字符串轉(zhuǎn)成一個對象,對象序列化與反序列化是一個相互轉(zhuǎn)換的過程。

在上面的代碼中,為了可以觀察到反序列化的結(jié)果,我們在該實(shí)體類中重寫一下ToString方法,然后實(shí)例化一個PLCInfo對象,后續(xù)就針對這個對象進(jìn)行操作,代碼如下所示:

圖片

二、二進(jìn)制序列化

二進(jìn)制序列化及反序列化的方式主要是使用BinaryFormatter這個類,序列化方法代碼如下:

圖片

反序列化方法代碼如下:

圖片

測試結(jié)果如下:

圖片

分析:我們可以看到二進(jìn)制序列化的結(jié)果是一串亂碼,但是可以正常反序列化成一個對象。通過二進(jìn)制序列化的優(yōu)勢是比較簡單,甚至還能加密,但是劣勢在于結(jié)果比較長,可讀性比較差,在實(shí)體類中要加個[Serializable]特性標(biāo)識。

三、Xml序列化

Xml序列化及反序列化的方式主要是使用XmlSerializer這個類,序列化方法代碼如下:

圖片

反序列化方法代碼如下:

圖片

測試結(jié)果如下:

圖片

分析:我們可以看到Xml序列化的結(jié)果可讀性比二進(jìn)制要好很多,但是相比后面的Json還是相對復(fù)雜一些。

四、Json序列化

Json序列化及反序列化的方式主要是使用Newtonsoft.Json這個庫,可以通過Nuget安裝,并添加引用,使用非常簡單,序列化及反序列化方法代碼如下:

圖片

測試結(jié)果如下:

圖片

分析:我們可以看到Json序列化的結(jié)果相對于Xml來說要更加簡潔一些,這也是為什么Json使用越來越多的原因。

到此這篇關(guān)于C#實(shí)現(xiàn)對象序列化的3種方案小結(jié)的文章就介紹到這了,更多相關(guān)C# 對象序列化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論