




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、南京工業(yè)職業(yè)技術(shù)學(xué)院蔣美云南京工業(yè)職業(yè)技術(shù)學(xué)院可序列化類型數(shù)據(jù)契約知類型Known typesIXmlSerializable南京工業(yè)職業(yè)技術(shù)學(xué)院在分布式系統(tǒng)中,一個Application與另一個Application之間進(jìn)展交互,必然需求攜帶數(shù)據(jù)。在效力內(nèi)部,功能由代碼實(shí)現(xiàn),而在效力外部,功能由WSDL定義,WCF效力內(nèi)部程序的數(shù)據(jù)由簡單與復(fù)雜類型,而在效力外部,數(shù)據(jù)由XSD(XML Schema Definitions)表示。數(shù)據(jù)契約的作用:類型與XSD之間進(jìn)展映射。映射成XSD后隨WSDL一同發(fā)布。序列化可以了解成這種關(guān)系的映射。Serialization可
2、以看成是把包含一樣內(nèi)容的數(shù)據(jù)從一種構(gòu)造 (.NET Object) 轉(zhuǎn)換成另一種構(gòu)造 (XML) 。要實(shí)如今兩種不同構(gòu)造之間的轉(zhuǎn)化,這兩種構(gòu)造之間必需存在一種Mapping(映射)。Serialization的實(shí)現(xiàn)由序列化器Serializer來擔(dān)任。南京工業(yè)職業(yè)技術(shù)學(xué)院WCF序列化將對象圖轉(zhuǎn)化為XML信息集的過程。將CLR類型轉(zhuǎn)化成符合規(guī)范的XML南京工業(yè)職業(yè)技術(shù)學(xué)院滿足以下條件之一將被DataContractSerializer序列化:標(biāo)志有 DataContract和DataMember屬性具有CollectionDataContract屬性由IXMLSerializable派生;標(biāo)志有
3、Serializable屬性,而成員未標(biāo)志NonSerialized標(biāo)志有Serializable,并實(shí)現(xiàn)了Iserializable接口;CLR內(nèi)建根本類型,如int,stringBytes array、DateTime、等數(shù)組或容器枚舉南京工業(yè)職業(yè)技術(shù)學(xué)院Serialization 是經(jīng)過Serializer來完成的,在WCF中,有3種不同的SerializerDataContractSerializer定義在System.RunTime.Serializtion namespace中XMLSerializer定義在System.XML.Serialization namespaceNet
4、DataContractSerializer (定義在System.XML.Serialization namespace) 。他們用不同的方式實(shí)現(xiàn).NET Object的Serialization。DataContractSerializer和NetDataContractSerializer根本上沒有太大的區(qū)別,其中DataContractSerializer為WCF默許的Serializer,假設(shè)沒有顯式定義采用另外一種Serializer,WCF會創(chuàng)建一個DataContractSerializer 序列化NET Object。南京工業(yè)職業(yè)技術(shù)學(xué)院南京工業(yè)職業(yè)技術(shù)學(xué)院一切域都被序列化
5、無論可訪問性accessibility如何無法對命名規(guī)范或者數(shù)據(jù)類型進(jìn)展控制不想系列化某個成員,可以在該成員上添加Nonserializable特性南京工業(yè)職業(yè)技術(shù)學(xué)院為了獲得最大能夠的互操作性,建議運(yùn)用DataContractAttribute 和DataMemberAttribute 屬性對類型進(jìn)展標(biāo)志,以創(chuàng)建數(shù)據(jù)協(xié)定。數(shù)據(jù)協(xié)定是效力協(xié)定的一部分,用于描畫效力操作交換的數(shù)據(jù)。對于復(fù)雜類型,運(yùn)用DataContractSerializer是一種較好的方法南京工業(yè)職業(yè)技術(shù)學(xué)院南京工業(yè)職業(yè)技術(shù)學(xué)院南京工業(yè)職業(yè)技術(shù)學(xué)院南京工業(yè)職業(yè)技術(shù)學(xué)院 DataContract public class Peo
6、ple DataMember public string name; DataMember public int age; public People(string name,int age) = name; this.age = age; ServiceContract public interface IService1 OperationContract string GetInfomation(People people);枚舉DataContractenum ContactType EnumMember Customer; EnumMember Vendor; 1
7、.枚舉也可以不序列化直接運(yùn)用,假設(shè)需求添加效力運(yùn)用或用svcutil.exe需求序列化2.需求只發(fā)布部分枚舉成員的時候才需求運(yùn)用DataContractAttribute和EnumMemberAttribute屬性,否那么就采用缺省的契約不運(yùn)用任何屬性來包含全部枚舉成員3.可以經(jīng)過運(yùn)用NonSerializedAttributed來排除不希望被序列化的枚舉成員南京工業(yè)職業(yè)技術(shù)學(xué)院提供命名空間Namespace可以提供顯式的Name南京工業(yè)職業(yè)技術(shù)學(xué)院可以指定陳列順序 缺省按照字母表順序陳列可以顯式提供Name, IsRequired表示是不是為空,如IsRequired=true,表示Name
8、在序列化之前必需求被賦值,不為空南京工業(yè)職業(yè)技術(shù)學(xué)院南京工業(yè)職業(yè)技術(shù)學(xué)院數(shù)據(jù)契約是可選的款式協(xié)定:除非顯式運(yùn)用數(shù)據(jù)協(xié)定屬性,否那么不會序列化任何類型或數(shù)據(jù)成員數(shù)據(jù)協(xié)定與托管代碼的訪問范圍無關(guān):可以對私有數(shù)據(jù)成員進(jìn)展序列化,并將其發(fā)送到其他位置,以便可以公開訪問它們南京工業(yè)職業(yè)技術(shù)學(xué)院南京工業(yè)職業(yè)技術(shù)學(xué)院南京工業(yè)職業(yè)技術(shù)學(xué)院南京工業(yè)職業(yè)技術(shù)學(xué)院V1版 DataContract public class People DataMember public string name; DataMember public int age; DataMember public int grade; V2版
9、DataContract public class People DataMember public string name; DataMember public int age; DataMember public string id; 在運(yùn)用添加效力援用和svcutil.exe添加代理時,具有擴(kuò)展功能。也即,代理類根據(jù)V1生成,而后效力晉級到V2版本,可以用v1版契約調(diào)用v2版效力南京工業(yè)職業(yè)技術(shù)學(xué)院南京工業(yè)職業(yè)技術(shù)學(xué)院南京工業(yè)職業(yè)技術(shù)學(xué)院書本p54類之間的承繼關(guān)系南京工業(yè)職業(yè)技術(shù)學(xué)院用Known types屬性在WSDL中發(fā)布其他數(shù)據(jù)類型需求強(qiáng)迫包含某些類型知類型Known types允
10、許在效力契約中運(yùn)用多態(tài)的行為KnownType用法: KnownType(typeof(類型)運(yùn)用場景數(shù)據(jù)契約上: 1一個序列化的派生類被發(fā)送到端點(diǎn),而希望得到序列化的基類,WCF無法知道,由于基類能夠不是契約的一部分;(基類的實(shí)例可以援用該基類多個派生類的實(shí)例,沒加KnownType不會被反序列化)DataContract KnownType(typeof派生類)基類2hashtable類,存儲的元素是其他類p56 在效力操作中暴露根本類型 將知類型known types相關(guān)到 根本類型基類類型本身 特定操作 整個效力契約 采用屬性聲明或者配置的方式來實(shí)現(xiàn)南京工業(yè)職業(yè)技術(shù)學(xué)院南京工業(yè)職業(yè)技術(shù)學(xué)院ServiceKnownTypeAttribute特性,可以運(yùn)用在效力契約上,也可以運(yùn)用在效力契約的操作方法上。P58,留意57頁下文字而KnowType僅能用在數(shù)據(jù)契約的基類上。南京工業(yè)職業(yè)技術(shù)學(xué)院南京工業(yè)職業(yè)技術(shù)學(xué)院南
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖南冶金職業(yè)技術(shù)學(xué)院《企業(yè)生產(chǎn)與技術(shù)管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年陜西省建筑安全員-B證(項(xiàng)目經(jīng)理)考試題庫
- 湖南電氣職業(yè)技術(shù)學(xué)院《面向數(shù)據(jù)科學(xué)的語言》2023-2024學(xué)年第二學(xué)期期末試卷
- 2022中職班主任的工作計(jì)劃(5篇)
- 行政人事部門工作計(jì)劃
- 鄉(xiāng)鎮(zhèn)獸醫(yī)工作計(jì)劃(6篇)
- 做賬實(shí)操-民宿行業(yè)稅務(wù)籌劃方案
- 滬教版2025年三年級下學(xué)期語文期中復(fù)習(xí)調(diào)研
- 開學(xué)典禮學(xué)生講話稿2024(29篇)
- 西師大2025年一年級數(shù)學(xué)下學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測復(fù)習(xí)全能練習(xí)單
- 環(huán)境修復(fù)原理與技術(shù)-第5章-污染環(huán)境的植物修復(fù)原理
- 2024年1月浙江省首考普通高等學(xué)校招生全國統(tǒng)一考試英語試題
- 關(guān)于新能源場站“兩個細(xì)則”的影響和管理措施
- 手術(shù)部位感染預(yù)防控制措施
- 社會學(xué)概論課件
- 中醫(yī)類診所規(guī)章制度與崗位職責(zé)
- 初中語文 中考總復(fù)習(xí)-文言文斷句訓(xùn)練120題(含答案解析)
- 影視鑒賞-動畫電影課件
- 美學(xué)原理全套教學(xué)課件
- 精裝修施工圖深化內(nèi)容及要求
- 《克雷洛夫寓言》閱讀指導(dǎo)課件
評論
0/150
提交評論