序列化和反序列化

2021-09-07 02:53:35 字數 2470 閱讀 5878

<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...

序列化和反序列化

先定義乙個類 serializable xmlroot shintech public class person set public string name set public person this 0,string.empty public person int m age,string m...

序列化和反序列化

引文來自 序列化和反序列化我們可能經常會聽到,其實通俗一點的解釋,序列化就是把乙個物件儲存到乙個檔案或資料庫欄位中去,反序列化就是在適當的時候把這個檔案再轉化成原來的物件使用。using system using system.collections using system.text namesp...