在我們很多程序中,需要將數(shù)據(jù)保存到本地,以便于下次打開還能看到原始數(shù)據(jù)。例如我們Xmind思維導(dǎo)圖,例如我們的Power Designer等等,都是有保存一個隸屬于自己的工程文件,那么今天我要說的就是,工程文件中的序列化和反序列化。

【簡介】

  序列化就是就愛那個對象實例的狀態(tài)存儲到存儲媒體的過程。在此過程中,先將對象的公共字段和私有字段以類的名稱(包括類的程序集)轉(zhuǎn)為字節(jié)流,然后再把字節(jié)流寫入數(shù)據(jù)流,在隨后對對象進行反序列化的時候,將創(chuàng)建與原來對象相同的副本。

【為什么要序列化?序列化的好處是什么?】

1、將對象的狀態(tài)保存在存儲媒體中,以便于可以在以后重新創(chuàng)建出來完全相同副本。

2、按值將對象從一個應(yīng)用程序域發(fā)送到另一個應(yīng)用程序域。這樣可以方便內(nèi)存對象變成磁盤數(shù)據(jù),便于網(wǎng)絡(luò)傳輸,用于分布式,WCF等應(yīng)用(JSON其實就是將對象序列化為字符串)。實現(xiàn)對象的備份和還原。

【持久儲存】

我們經(jīng)常需要將對象的字段值保存到磁盤中,并在以后檢索這些數(shù)據(jù)。盡管我們不采用序列化也可以做到這事兒,但是通常這種方法比較繁瑣而且容易出現(xiàn)差錯。在需要跟蹤對象的層次結(jié)構(gòu)時,會變得越來越復(fù)雜??梢韵胂笕绻覀冊谶M行編寫一個包含大量對象的大型的業(yè)務(wù)應(yīng)用程序的時候,開發(fā)人員不得不為每個對象編寫代碼,以便于將字段和屬性保存