序列化與反序列化

2021-06-26 08:51:41 字數 2481 閱讀 7984

<1>

把「物件」轉換為「位元組序列」的過程稱為物件的序列化。     把「位元組序列」恢復為「物件」的過程稱為物件的反序列化。

序列化

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.io;

using system.runtime.serialization.formatters.binary;

namespace 序列化與反序列化

public int age

public char gender

public person()

public person(string name, int age, char gender)

}class program

console.writeline("序列化完畢");}}

}

反序列化

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.io;

using system.runtime.serialization.formatters.binary;

namespace 序列化與反序列化

public int age

public char gender

}class program}}

}

序列化

序列化

將此類的乙個例項序列化為乙個檔案:

【myfile.bin 這個檔案是把obj物件序列化後持久化儲存的檔案】

myobject obj = new myobject();

obj.n1 = 1;

obj.n2 = 24;

obj.str = "一些字串";

iformatter formatter = new binaryformatter();

stream mystream = new filestream("myfile.bin", filemode.create,

fileaccess.write, fileshare.none);

formatter.serialize(mystream, obj);

stream.close();

反序列化

反序列化

這裡說的是將乙個myfile.bin檔案通過反序列化,轉換成乙個obj物件

【filestream 讀取這個檔案流,然後用.net的序列化器反序列化成物件】

iformatter formatter = new binaryformatter();

stream mystream = new filestream("myfile.bin", filemode.open,

fileaccess.read, fileshare.read);

myobject obj = (myobject) formatter.deserialize(mystream);

stream.close();

xml

將此類的例項序列化成乙個xml檔案

xmlserializer ser = new xmlserializer(obj.gettype());

ser.serialize(new filestream(@"users.xml", filemode.create), obj);

反序列化

xmlserializer serializer = new xmlserializer(type.gettype("myobject"));

myobject my=(myobject)serializer.deserialize(new filestream(@"users.xml",filemode.open));

序列化datatable

主要是為了實現下次啟動專案的時候能讀取上次儲存的物件資訊。通俗點就是把乙個物件儲存起來,在特別的時候在把這個還原出來。在c#中常見的序列化的方法主要也有三個:binaryformatter、soapformatter、xml序列化。今天涉及到的主要是xml序列化,就datatable的內容序列化儲存。

/// /// datatable序列化

///

/// 需要序列化的datatable

/// 路徑

public void serializer(datatable dt,string path)

//反序列化

private void initdata(string filepath)

}

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

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

序列化與反序列化

把複雜的資料型別壓縮到乙個字串中 serialize 把變數和它們的值編碼成文字形式 unserialize 恢復原先變數 eg stooges array moe larry curly new serialize stooges print r new echo print r unserial...

序列化與反序列化

序列化是將物件處理為位元組流以儲存物件或傳輸到記憶體 資料庫或檔案。其主要目的是儲存物件的狀態,以便可以在需要時重新建立物件。相反的過程稱為反序列化。通過序列化,開發人員可以儲存物件的狀態,並在需要時重新建立該物件,從而提供物件的儲存以及資料交換。通過序列化,開發人員還可以執行類似如下的操作 通過 ...