新聞中心
對(duì)于.NET對(duì)象的XML序列化和反序列化的理解我們首先來(lái)看看序列化的概念,什么是序列化呢?它是指一個(gè)對(duì)象的實(shí)例可以被保存成一個(gè)二進(jìn)制串,當(dāng)然,一旦被保存成二進(jìn)制串,那么也就意味著可以保存成文本串了。

創(chuàng)新互聯(lián)建站長(zhǎng)期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為牙克石企業(yè)提供專(zhuān)業(yè)的網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,牙克石網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
比如,一個(gè)計(jì)數(shù)器,數(shù)值為2,我們可以用字符串“2”表示。如果有個(gè)對(duì)象,叫做connter,當(dāng)前值為2,那么可以序列化成“2”,反向的,也可以從“2”得到值為2的計(jì)數(shù)器實(shí)例。這樣,關(guān)機(jī)時(shí)序列化它,開(kāi)機(jī)時(shí)反序列化它,每次開(kāi)機(jī)都是延續(xù)的。不會(huì)都是從頭開(kāi)始。
序列化概念的提出和實(shí)現(xiàn),可以使我們的應(yīng)用程序的設(shè)置信息保存和讀取更加方便。序列化有很多好處,比如,在一臺(tái)機(jī)器上產(chǎn)生一個(gè)實(shí)例,初始化完畢,然后可以序列化,通過(guò)網(wǎng)絡(luò)傳送到另一臺(tái)機(jī)器,然后反序列化,得到對(duì)象實(shí)例,之后再執(zhí)行某些業(yè)務(wù)邏輯,得到結(jié)果,再序列化,返回第一臺(tái)機(jī)器,第一臺(tái)機(jī)器得到對(duì)象實(shí)例,得到結(jié)果。
當(dāng)前比較熱火的web services使用soap協(xié)議,soap協(xié)議也是以對(duì)象的可序列化為基礎(chǔ)的。
.NET對(duì)象的XML序列化和反序列化實(shí)現(xiàn)的概述:
一、概述
.NET Framework為處理XML數(shù)據(jù)提供了許多不同的類(lèi)庫(kù)。XmlDocument類(lèi)能讓你像處理文件一樣處理xml數(shù)據(jù),而XmlReader、XmlWriter和它們的派生類(lèi)使你能夠?qū)ml數(shù)據(jù)作為數(shù)據(jù)流處理。
XmlSerializer則提供了另外的方法,它使你能夠?qū)⒆约旱膶?duì)象串行化和反串行化為xml。串行化數(shù)據(jù)既能夠讓你像處理文件一樣對(duì)數(shù)據(jù)進(jìn)行隨機(jī)處理,同時(shí)又能跳過(guò)你不感興趣的數(shù)據(jù)。
二、主要類(lèi)庫(kù)介紹
.NET 支持對(duì)象xml序列化和反序列化的類(lèi)庫(kù)主要位于命名空間System.Xml.Serialization中。
1. XmlSerializer 類(lèi)
該類(lèi)用一種高度松散耦合的方式提供串行化服務(wù)。你的類(lèi)不需要繼承特別的基類(lèi),而且它們也不需要實(shí)現(xiàn)特別的接口。相反,你只需在你的類(lèi)或者這些類(lèi)的公共域以及讀/寫(xiě)屬性里加上自定義的特性。XmlSerializer通過(guò)反射機(jī)制讀取這些特性并用它們將你的類(lèi)和類(lèi)成員映射到xml元素和屬性。
2. XmlAttributeAttribute 類(lèi)
指定類(lèi)的公共域或讀/寫(xiě)屬性對(duì)應(yīng)xml文件的Attribute。
例:[XmlAttribute(“type”)] or [XmlAttribute(AttributeName=”type”)]
3. XmlElementAttribute類(lèi)
指定類(lèi)的公共域或讀/寫(xiě)屬性對(duì)應(yīng)xml文件的Element。
例:[XmlElement(“Maufacturer”)] or [XmlElement(ElementName=”Manufacturer”)]
4. XmlRootAttribute類(lèi)
Xml序列化時(shí),由該特性指定的元素將被序列化成xml的根元素。
例:[XmlRoot(“RootElement”)] or [XmlRoot(ElementName = “RootElements”)]
5. XmlTextAttribute 類(lèi)
Xml序列化時(shí),由該特性指定的元素值將被序列化成xml元素的值。一個(gè)類(lèi)只允許擁有一個(gè)該特性類(lèi)的實(shí)例,因?yàn)閤ml元素只能有一個(gè)值。
6. XmlIgnoreAttribute類(lèi)
Xml序列化時(shí)不會(huì)序列化該特性指定的元素。
對(duì)于.NET對(duì)象的XML序列化和反序列化的理解的基本內(nèi)容就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí).NET對(duì)象的XML序列化和反序列化有所幫助。
【編輯推薦】
- 詳解C#中不同類(lèi)的類(lèi)型
- 淺談C#中標(biāo)準(zhǔn)Dispose模式的實(shí)現(xiàn)
- C#選擇正確的集合進(jìn)行編碼
- C# 4.0新特性:協(xié)變與逆變中的編程思想
- C#應(yīng)用Attribute特性 代碼統(tǒng)計(jì)分析
文章標(biāo)題:.NET對(duì)象的XML序列化和反序列化概念淺析
文章鏈接:http://fisionsoft.com.cn/article/djjipig.html


咨詢
建站咨詢
