成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WCF數(shù)據(jù)契約特性剖析

開發(fā) 開發(fā)工具
WCF數(shù)據(jù)契約的應(yīng)用技巧比較繁多,在這篇文章中我們通過一些簡(jiǎn)單的介紹可以讓大家詳細(xì)了解到這方面的具體知識(shí)。

WCF在開發(fā)領(lǐng)域中占據(jù)著一個(gè)比較重要的地位,我們可以通過本文介紹的關(guān)于對(duì)WCF數(shù)據(jù)契約的相關(guān)內(nèi)容來(lái)詳細(xì)了解一下這方面的相關(guān)知識(shí)。那么如何才能正確的應(yīng)用這方面的知識(shí)來(lái)幫助我們實(shí)現(xiàn)功能需求呢?#t#

WCF數(shù)據(jù)契約就是采用一種廠商中立、平臺(tái)無(wú)關(guān)的形式(XSD)定義了數(shù)據(jù)的結(jié)構(gòu),而WCF通過DataContractAttribute和DataMemberAttribute旨在給相應(yīng)的類型加上一些元數(shù)據(jù),幫助DataContractSerializer將相應(yīng)類型的對(duì)象序列化成具有我們希望結(jié)構(gòu)的XML。在客戶端,WCF的服務(wù)調(diào)用并不完全依賴于某個(gè)具體的類型,客戶端如果具有與服務(wù)端完全相同的數(shù)據(jù)契約類型定義,固然***。如果客戶端現(xiàn)有的數(shù)據(jù)契約類型與發(fā)布出來(lái)數(shù)據(jù)契約具有一些差異,我們?nèi)匀豢梢酝ㄟ^DataContractAttribute和DataMemberAttribute這兩個(gè)特性使該數(shù)據(jù)契約與之等效。

簡(jiǎn)言之,如果承載相同數(shù)據(jù)的兩個(gè)不同數(shù)據(jù)契約類型對(duì)象最終能夠序列化出相同的XML,那么這兩個(gè)數(shù)據(jù)契約就可以看成是等效的數(shù)據(jù)契約。等效的數(shù)據(jù)契約具有相同的契約名稱、命名空間和數(shù)據(jù)成員,同時(shí)要求數(shù)據(jù)成員出現(xiàn)的先后次序一致。比如,下面兩種形式的WCF數(shù)據(jù)契約定義,雖然它們的類型和成員命名不一樣,甚至對(duì)應(yīng)成員在各自類型中定義的次序都不一樣,但是由于合理使用了DataContractAttribute和DataMemberAttribute這兩個(gè)特性,確保了它們的對(duì)象最終序列化后具有相同的XML結(jié)構(gòu),所以它們是兩個(gè)等效的數(shù)據(jù)契約。

  1. [DataContract(Namespace = "http://www.artech.com/")]  
  2. public class Customer   
  3. {   
  4. [DataMember(Order=1)]   
  5. public string FirstName   
  6. {get;set;}   
  7. [DataMember(Order = 2)]   
  8. public string LastName   
  9. { get; set; }   
  10. [DataMember(Order = 3)]   
  11. public string Gender   
  12. { get; set; }   
  13. }   
  14. [DataContract(Name = "Customer"Namespace = "http://www.artech.com/")]   
  15. public class Contact   
  16. {   
  17. [DataMember(Name = "LastName"Order = 2)]   
  18. public string Surname   
  19. { get; set; }   
  20. [DataMember(Name = "FirstName"Order = 1)]   
  21. public string Name   
  22. { get; set; }   
  23. [DataMember(Name = "Gender"Order = 3)]   
  24. public string Sex   
  25. { get; set; }   

WCF數(shù)據(jù)契約版本的差異最主要的表現(xiàn)形式是數(shù)據(jù)成員的添加和刪除。如何保證在數(shù)據(jù)契約中添加一個(gè)新的數(shù)據(jù)成員,或者是從數(shù)據(jù)契約中刪除一個(gè)現(xiàn)有的數(shù)據(jù)成員的情況下,還能保證現(xiàn)有客戶端的正常服務(wù)調(diào)用(對(duì)于服務(wù)提供者),或者對(duì)現(xiàn)有服務(wù)的正常調(diào)用(針對(duì)服務(wù)消費(fèi)者),這是數(shù)據(jù)契約版本控制需要解決的問題。

責(zé)任編輯:曹凱 來(lái)源: 博客園
相關(guān)推薦

2009-11-09 09:23:10

WCF數(shù)據(jù)契約

2010-02-24 16:58:14

WCF Session

2010-02-22 13:56:35

WCF服務(wù)契約

2010-02-23 13:46:37

WCF數(shù)據(jù)契約

2009-11-05 16:27:51

WCF數(shù)據(jù)契約

2010-02-23 13:54:43

WCF非定制數(shù)據(jù)契約集

2010-02-23 17:44:22

WCF數(shù)據(jù)契約

2009-11-09 14:15:17

WCF集合類型

2010-03-01 18:11:40

WCF數(shù)據(jù)契約變更

2010-02-22 16:26:47

WCF傳輸數(shù)據(jù)

2009-11-06 15:02:47

WCF契約查詢

2010-02-24 17:36:33

WCF集合數(shù)據(jù)契約

2009-11-09 14:46:09

WCF集合契約等價(jià)

2009-12-22 09:11:31

WCF雙向通信

2010-03-01 16:04:31

WCF服務(wù)契約

2009-11-06 16:05:37

WCF回調(diào)契約

2010-02-22 10:01:11

WCF消息處理

2010-02-23 09:34:15

WCF重載

2010-02-22 16:09:33

WCF宿主

2009-12-21 14:05:18

WCF契約
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美一级黄色片在线观看 | av电影一区 | 日韩在线播放一区 | 国产精品无码久久久久 | 国产精品国产a级 | 国产精品久久久久久久久 | 亚洲国产欧美日韩 | 亚洲一区二区三区视频 | 中文字幕日韩欧美 | 亚洲午夜av久久乱码 | 欧美日韩一卡 | 免费成年网站 | 欧美一级久久 | 久在线视频播放免费视频 | 国产成人高清成人av片在线看 | 精品视频在线观看 | 夜夜骚 | 中文字幕日韩欧美一区二区三区 | 九九热在线免费视频 | 在线观看日韩精品视频 | 男女搞网站| 午夜影院操 | 91av入口| 在线 丝袜 欧美 日韩 制服 | 九久久| 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 成人激情视频免费观看 | 天天操综合网 | 午夜久久久久久久久久一区二区 | 三级免费 | av一区二区三区在线观看 | 亚洲欧美一区二区在线观看 | 国产伦精品一区二区三区照片91 | 亚洲成人网在线观看 | 中文字幕一区二区三区精彩视频 | 综合婷婷 | 天天操天天天 | av资源中文在线 | 91av导航 | 欧美日韩在线一区二区 | 免费v片|