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

WCF非定制數(shù)據(jù)契約集合概念解析

開(kāi)發(fā) 開(kāi)發(fā)工具
我們?cè)谶@篇文章中將會(huì)根據(jù)一些具體示例來(lái)為大家簡(jiǎn)單講解一下關(guān)于WCF非定制數(shù)據(jù)契約集合的一些概念,方便大家理解。

微軟公司作為開(kāi)發(fā)領(lǐng)域中的領(lǐng)頭羊,它推出的產(chǎn)品往往能為開(kāi)發(fā)領(lǐng)域帶來(lái)新的血液。比如今天為大家介紹的WCF,就是一個(gè)功能強(qiáng)大的開(kāi)發(fā)插件。在這里我們先來(lái)了解一下其中WCF非定制數(shù)據(jù)契約集合的相關(guān)概念。#t#

在WCF中應(yīng)用了CollectionDataContractAttribute屬性的集合稱之為定制數(shù)據(jù)契約集合,否則為WCF非定制數(shù)據(jù)契約集合。不管是非定制數(shù)據(jù)契約集合還是定制數(shù)據(jù)契約集合,只要它們的數(shù)據(jù)契約名稱和循環(huán)元素的名稱都相同(如果是字典集合其Key和Value也要是相同的),我們就說(shuō)它們是等價(jià)的。由于非定制數(shù)據(jù)契約集合的數(shù)據(jù)契約以及循環(huán)元素的名稱由集合中的類型決定,所以WCF非定制數(shù)據(jù)契約集合的數(shù)據(jù)契約等價(jià)遵守以下幾個(gè)規(guī)則(關(guān)于數(shù)據(jù)契約等價(jià)的其他詳細(xì)信息請(qǐng)參見(jiàn)我以前的文章:WCF Data Contract之契約等價(jià)):

相同類型的列表集合被認(rèn)為具有相同的數(shù)據(jù)契約(協(xié)定)例如:List< int>和int[]是等價(jià)的。

具有相同相同鍵和值類型的所有字典集合也被視為具有相同的數(shù)據(jù)契約(協(xié)定)

接口和實(shí)現(xiàn)該接口的具體集合類的數(shù)據(jù)契約是等價(jià)的。例如IList< int>和List< int>等價(jià)。

非泛型集合與Object類型的泛型集合的數(shù)據(jù)契約等價(jià)。例如:List< Object>與ArrayList等價(jià),ArrayList與Object[]也是等價(jià)的。

 

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

 

  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;  

 

注意:Collection< string>和ICollection< string>是等價(jià)的,同時(shí)string[]和List< string>也是等價(jià)的。

 

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

以上就是對(duì)WCF非定制數(shù)據(jù)契約集合的一些簡(jiǎn)單介紹。

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

2010-02-24 17:36:33

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

2009-11-09 14:15:17

WCF集合類型

2009-11-09 09:23:10

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

2010-02-22 15:27:05

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

2009-11-09 14:46:09

WCF集合契約等價(jià)

2010-02-22 13:56:35

WCF服務(wù)契約

2010-02-24 16:58:14

WCF Session

2010-02-23 13:46:37

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

2009-12-21 15:33:07

WCF集合元素

2009-11-05 16:27:51

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

2009-12-22 11:29:27

WCF自定義集合類型

2010-03-01 18:11:40

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

2010-02-23 17:44:22

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

2009-11-06 15:02:47

WCF契約查詢

2009-12-22 09:11:31

WCF雙向通信

2010-03-01 16:04:31

WCF服務(wù)契約

2009-12-21 14:05:18

WCF契約

2012-04-23 15:49:04

2010-03-01 16:41:04

WCF數(shù)據(jù)表

2010-03-01 15:12:53

WCF回調(diào)契約
點(diǎn)贊
收藏

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