最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

一、準(zhǔn)備工作

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

圖片

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

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

圖片

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

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

圖片

反序列化方法代碼如下:

圖片

測(cè)試結(jié)果如下:

圖片

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

三、Xml序列化

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

圖片

反序列化方法代碼如下:

圖片

測(cè)試結(jié)果如下:

圖片

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

四、Json序列化

Json序列化及反序列化的方式主要是使用Newtonsoft.Json這個(gè)庫(kù),可以通過(guò)Nuget安裝,并添加引用,使用非常簡(jiǎn)單,序列化及反序列化方法代碼如下:

圖片

測(cè)試結(jié)果如下:

圖片

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

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

相關(guān)文章

  • C#?內(nèi)存安全性的重大演進(jìn):重新定義?unsafe?關(guān)鍵字

    C#?內(nèi)存安全性的重大演進(jìn):重新定義?unsafe?關(guān)鍵字

    本文揭示了C#與.NETL1的內(nèi)存安全變革,通過(guò)精準(zhǔn)定位危險(xiǎn)區(qū)域,讓C#更接近Rust的安全保障,引入newalloc三條件、safe關(guān)鍵字上下文等新模型代號(hào)MemorySafetyRules,同時(shí)提供ref安全的逃生通道,助力開(kāi)發(fā)者在新舊模型間平穩(wěn)過(guò)渡,感興趣的朋友跟隨小編一起看看吧
    2026-06-06
  • C# 啟用事務(wù)提交多條帶參數(shù)的SQL語(yǔ)句實(shí)例代碼

    C# 啟用事務(wù)提交多條帶參數(shù)的SQL語(yǔ)句實(shí)例代碼

    這篇文章主要介紹了C# 啟用事務(wù)提交多條帶參數(shù)的SQL語(yǔ)句實(shí)例代碼,需要的朋友可以參考下
    2018-02-02
  • 在winform中嵌入第三方軟件窗體的實(shí)踐分享

    在winform中嵌入第三方軟件窗體的實(shí)踐分享

    這篇文章主要介紹了在winform中如何嵌入第三方軟件窗體的實(shí)踐分享,文中通過(guò)代碼示例和圖文給大家介紹的非常詳細(xì),具有一定參考價(jià)值,需要的朋友可以參考下
    2024-03-03
  • 基于Unity實(shí)現(xiàn)3D版2048游戲的示例代碼

    基于Unity實(shí)現(xiàn)3D版2048游戲的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Unity實(shí)現(xiàn)簡(jiǎn)易的3D版2048游戲,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,需要的可以參考一下
    2023-02-02
  • C#如何快速釋放內(nèi)存的大數(shù)組詳解

    C#如何快速釋放內(nèi)存的大數(shù)組詳解

    這篇文章主要給大家介紹了關(guān)于C#如何快速釋放內(nèi)存的大數(shù)組的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Unity制作游戲自定義按鍵詳解

    Unity制作游戲自定義按鍵詳解

    這篇文章主要介紹了在Unity中如何實(shí)現(xiàn)游戲自定義按鍵,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Unity有一定幫助,感興趣的可以跟隨小編學(xué)習(xí)一下
    2022-01-01
  • WinForm中Application.Idle方法詳解

    WinForm中Application.Idle方法詳解

    本文詳細(xì)講解了WinForm中的Application.Idle方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • C#中數(shù)組、ArrayList和List三者的區(qū)別詳解及實(shí)例

    C#中數(shù)組、ArrayList和List三者的區(qū)別詳解及實(shí)例

    這篇文章主要介紹了C#中數(shù)組、ArrayList和List三者的區(qū)別詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • C#實(shí)現(xiàn)頁(yè)面GZip或Deflate壓縮的方法

    C#實(shí)現(xiàn)頁(yè)面GZip或Deflate壓縮的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)頁(yè)面GZip或Deflate壓縮的方法,涉及C#通過(guò)GZipStream與DeflateStream實(shí)現(xiàn)頁(yè)面壓縮的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • Unity實(shí)現(xiàn)物體運(yùn)動(dòng)時(shí)畫(huà)出軌跡

    Unity實(shí)現(xiàn)物體運(yùn)動(dòng)時(shí)畫(huà)出軌跡

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)物體運(yùn)動(dòng)時(shí)畫(huà)出軌跡,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09

最新評(píng)論

宜州市| 柞水县| 康保县| 手游| 崇礼县| 鲁山县| 和政县| 色达县| 镇沅| 奈曼旗| 九台市| 宝兴县| 霞浦县| 于都县| 福建省| 杂多县| 静乐县| 龙江县| 永寿县| 资源县| 新闻| 客服| 怀集县| 富蕴县| 团风县| 河北区| 凉山| 巴东县| 鲜城| 淮安市| 句容市| 寿阳县| 西畴县| 东方市| 亚东县| 万荣县| 深水埗区| 平江县| 元江| 林州市| 容城县|