C 序列化技術

2021-04-13 05:15:11 字數 1673 閱讀 3860

一:binaryformatter序列化

序列化簡單點來理解就是把記憶體的東西寫到硬碟中

,當然也可以寫到記憶體中

(這個內容我會在後面寫乙個例子

).而反序列化就是從硬碟中把資訊讀到記憶體中

.就這麼簡單,呵呵

,現在來看下面的例子吧!

在這篇文章中我將使用

binaryformatter

序列化類

book

作為例子

,希望大家能從例子中深刻體會什麼是序列化.

定義類book:

[serializable]

public class book}

在類的上面增加了屬性

:serializable.(

如果不加這個屬性

,將丟擲

serializationexception

異常).

通過這個屬性將

book

標誌為可以序列化的

.當然也有另一種方式使類

book

可以序列化

,那就是實行

iserializable

介面了.

在這裡大家要注意了

:serializable

屬性是不能被繼承的咯

!!!

如果你不想序列化某個變數

,該怎麼處理呢

?很簡單

,在其前面加上屬性

[nonserialized] .

比如我不想序列化

string author;

那我只需要

[nonserialized]

string author;

好了,現在就告訴大家怎麼實現序列化:

我們使用

namespace:

using system;

using system.io;

using system.runtime.serialization.formatters.binary;

首先建立

book

例項,like this:  

book book = new book("day and night",

30.0f

, "bruce");

接著當然要建立乙個檔案了

,這個檔案就是用來存放我們要序列化的資訊了.

filestream fs = new filestream(@"c:/book.dat", filemode.create);

序列化的實現也很簡單

,like this:

binaryformatter formatter = new binaryformatter();

formatter.serialize(fs, book);

很簡單吧

!現在我列出整個原**

,包括反序列化.

static void

main

(string args)

book = null;

using(filestream fs = new filestream(@"c:/book.dat", filemode.open))}

有不對的地方

,請大家多多糾正.....

C 序列化技術詳解

序列化和反序列化我們可能經常會聽到,其實通俗一點的解釋 序列化就是把乙個物件儲存到乙個檔案或資料庫欄位中去,反序列化就是在適當的時候把這個檔案再轉化成原來的物件使用。序列化和反序列化最主要的作用有 1 在程序下次啟動時讀取上次儲存的物件的資訊 2 在不同的 或程序之間傳遞資料 3 在分布式應用系統中...

序列化與反序列化技術

將記憶體中的臨時資料,儲存到本地硬碟的技術 持久化之後,即使程式重啟,也不會造成資料的丟失和重置 建立student集合 list stus newarraylist stus.add newstudent 1 小馬 16 stus.add newstudent 2 小菜 16 stus.add n...

C 序列化 反序列化

序列化又稱序列化,是.net執行時環境用來支援使用者定義型別的流化的機制。其目的是以某種儲存形成使自定義物件持久化,或者將這種物件從乙個地方傳輸到另乙個地方。net框架提供了兩種序列化的方式 1 是使用binaryformatter進行序列化 2 使用soapformatter進行序列化 3 使用x...