免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
序列化

作者:SPARON                 MSNZHAOKEYONG@HOTMAIL.COM

 

兒天沒寫東東了,這兒天研究了下.NET對象的XML序列化,雖不是很深入,但還是記下,就算是學(xué)習(xí)道路的一個(gè)里程碑吧。

 

WEBFORM開發(fā)中有很大一個(gè)難題是數(shù)據(jù)庫的調(diào)用,雖然DATASET對數(shù)據(jù)的讀取有了很大進(jìn)步,但是每第一次訪問網(wǎng)站時(shí)總會(huì)讀很久的數(shù)據(jù),有沒有一種很的辦法來控制呢?答案是肯定的,在.NET下有一種技術(shù)叫做對象序列化,它可以將對象序列化為二進(jìn)制文件、XML文件、SOAP文件,這樣,使用經(jīng)過序列化的流進(jìn)行傳輸效率就得到了大大的提升。

 

.NET中提供了兩種序列化:二進(jìn)制序列化、XMLSOAP序列化。對于WEB應(yīng)用來說,用得最多的是第二種———XMLSOAP序列化。

 

XML 序列化將對象的公共字段和屬性或者方法的參數(shù)和返回值轉(zhuǎn)換(序列化)為符合特定 XML 架構(gòu)定義語言 (XSD) 文檔的 XML 流。XML 序列化生成強(qiáng)類型的類,并為存儲(chǔ)或傳輸目的將其公共屬性和字段轉(zhuǎn)換為序列格式(在此情況下為 XML)。

 

注意

XML 序列化不轉(zhuǎn)換方法、索引器、私有字段或只讀屬性(只讀集合除外)。

 

理解了基本的理論后我們來看看XML是如何進(jìn)行對象序列化的。

看死板的文字是非??菰锏?,還是用CODE來說明問題直截了當(dāng)。

 

XML文件序列:

SerObj obj = new SerObj();

obj.name = "sparon";

obj.age = 23;

obj.sex = true;

XmlSerializer ser = new XmlSerializer(typeof (SerObj));

Stream file = new FileStream("sptxt.xml", FileMode.Create, FileAccess.Write);

ser.Serialize(file, obj);

 

SerObj對象如下:

public class SerObj

{

    public string name;

    public int age;

    public bool sex;//true為男;false為女;

    public SerObj() { }

}

 

其實(shí)關(guān)鍵步驟只有兩步:

XmlSerializer ser = new XmlSerializer(typeof (SerObj));

使用SerObj對象的類型來造一個(gè)XmlSerializer,然后使用Serialize方法將Stream對象和SerObj對象一起傳入,序列出一個(gè)XML文件。

XML文件如下所示:

<?xml version="1.0"?>

<SerObj xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

 <name>sparon</name>

 <age>23</age>

 <sex>true</sex>

</SerObj>

 

 

反序列化步驟如下:

SerObj obj = new SerObj();

XmlSerializer ser = new XmlSerializer(typeof (SerObj));

Stream file = new FileStream("sptxt.xml", FileMode.Open , FileAccess.Read );

obj=(SerObj )ser.Deserialize(file);

 

其差別就在后兩句而關(guān)鍵的就只有obj=(SerObj )ser.Deserialize(file);一句。這個(gè)是反序列化XML文件并轉(zhuǎn)換為SerObj類型賦予obj。

 

注意:使用SerializeDeserialize需要指明命令空間System.Xml.Serialization

 

個(gè)人總結(jié)

序列(Serialize :將對象序列為文件。

反序列化(Deserialize):將文件序列為對象。

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
小說.Net 中的序列化與反序列化
XML與對象的序列化與反序列化
C# 序列化與反序列化幾種格式的轉(zhuǎn)換
C# 序列化(Serialize)與反序列化(Deserialize)
深入C#學(xué)習(xí)系列一:序列化(Serialize)、反序列化(Deserialize)
C#Object與XML文件或二進(jìn)制文件之間的轉(zhuǎn)化
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服