自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

新手必看WCF集合契約等價案例分析

開發(fā) 后端
這里就WCF集合契約等價的幾個規(guī)定做出了詳細(xì)的介紹,相同類型的列表集合被認(rèn)為具有相同的數(shù)據(jù)契約(協(xié)定),希望對大家有幫助。

經(jīng)過長時間學(xué)習(xí)WCF,也經(jīng)常在網(wǎng)上收集資料,于是和大家分享一下關(guān)于WCF集合契約等價,在WCF中應(yīng)用了CollectionDataContractAttribute屬性的集合稱之為定制數(shù)據(jù)契約集合,否則為非定制數(shù)據(jù)契約集合。不管是非定制數(shù)據(jù)契約集合還是定制數(shù)據(jù)契約集合,只要它們的數(shù)據(jù)契約名稱和循環(huán)元素的名稱都相同(如果是字典集合其Key和Value也要是相同的),我們就說它們是等價的。

由于非定制數(shù)據(jù)契約集合的數(shù)據(jù)契約以及循環(huán)元素的名稱由集合中的類型決定,所以非定制數(shù)據(jù)契約WCF集合契約等價遵守以下幾個規(guī)則WCF Data Contract之WCF集合契約等價:
◆相同類型的列表集合被認(rèn)為具有相同的數(shù)據(jù)契約(協(xié)定)例如:List<int>和int[]是等價的。
◆具有相同相同鍵和值類型的所有字典集合也被視為具有相同的數(shù)據(jù)契約(協(xié)定)
◆接口和實(shí)現(xiàn)該接口的具體集合類的數(shù)據(jù)契約是等價的。例如IList<int>和List<int>等價。
◆非泛型集合與Object類型的泛型WCF集合契約等價等價。例如:List<Object>與ArrayList等價,ArrayList與Object[]也是等價的。

這就是為什么上面的示例中,實(shí)現(xiàn)IList<int>和ICollection<int>的集合類型的數(shù)據(jù)契約名稱都是ArrayOfint的原因。例如下面兩個數(shù)據(jù)契約是等價的:

  1. [DataContract(Name="Customer")] public class Customer1  
  2. {  
  3. [DataMember] public string customerName;  
  4. [DataMember] public Collection<string> addresses;  
  5. [DataMember] public string[] telephones;  
  6. }  
  7. [DataContract(Name="Customer")] public class Customer2  
  8. {  
  9. [DataMember] public string customerName;  
  10. [DataMember] public ICollection<string> addresses;  
  11. [DataMember] public List<string> telephones;  

#T#注意:Collection<string>和ICollection<string>是等價的,同時string[]和List<string>也是等價的。所以,針對Customer2的定義,我們可以將實(shí)現(xiàn)ICollection<string>接口的任何集合類的實(shí)例賦給addresses。同樣,我們也可以利用在數(shù)據(jù)契約中定義集合接口的機(jī)制來將WCF不支持的集合類型(如:ReadOnlyCollection,具體見本文中WCF中對集合類型的要求限制一節(jié))來應(yīng)用到我們的WCF應(yīng)用中。也就是說我們可以將ReadOnlyCollection的實(shí)例賦給Customer2的addresses.

責(zé)任編輯:田樹 來源: 博客
相關(guān)推薦

2009-11-06 16:22:35

WCF協(xié)定

2009-11-06 10:01:07

WCF服務(wù)元數(shù)據(jù)

2009-11-09 14:15:17

WCF集合類型

2010-02-23 13:54:43

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

2010-02-24 17:36:33

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

2010-03-01 18:11:40

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

2010-02-23 17:44:22

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

2009-11-09 09:23:10

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

2010-02-22 15:27:05

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

2010-02-22 13:56:35

WCF服務(wù)契約

2010-02-24 16:58:14

WCF Session

2009-11-06 09:39:40

WCF契約

2009-12-22 11:29:27

WCF自定義集合類型

2009-11-06 15:02:47

WCF契約查詢

2023-10-15 12:18:36

MPLS網(wǎng)絡(luò)

2011-07-19 15:49:04

Xcode 文件

2011-07-03 22:48:55

SEO

2009-11-05 16:21:51

WCF服務(wù)

2009-11-05 17:00:34

WCF有序傳遞

2010-02-23 13:46:37

WCF數(shù)據(jù)契約
點(diǎn)贊
收藏

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