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

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供衛(wèi)東網(wǎng)站建設(shè)、衛(wèi)東做網(wǎng)站、衛(wèi)東網(wǎng)站設(shè)計(jì)、衛(wèi)東網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、衛(wèi)東企業(yè)網(wǎng)站模板建站服務(wù),十載衛(wèi)東做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
在WCF中應(yīng)用了CollectionDataContractAttribute屬性的集合稱之為定制數(shù)據(jù)契約集合,否則為WCF非定制數(shù)據(jù)契約集合。不管是非定制數(shù)據(jù)契約集合還是定制數(shù)據(jù)契約集合,只要它們的數(shù)據(jù)契約名稱和循環(huán)元素的名稱都相同(如果是字典集合其Key和Value也要是相同的),我們就說它們是等價的。由于非定制數(shù)據(jù)契約集合的數(shù)據(jù)契約以及循環(huán)元素的名稱由集合中的類型決定,所以WCF非定制數(shù)據(jù)契約集合的數(shù)據(jù)契約等價遵守以下幾個規(guī)則(關(guān)于數(shù)據(jù)契約等價的其他詳細(xì)信息請參見我以前的文章:WCF Data Contract之契約等價):
相同類型的列表集合被認(rèn)為具有相同的數(shù)據(jù)契約(協(xié)定)例如:List< int>和int[]是等價的。
具有相同相同鍵和值類型的所有字典集合也被視為具有相同的數(shù)據(jù)契約(協(xié)定)
接口和實(shí)現(xiàn)該接口的具體集合類的數(shù)據(jù)契約是等價的。例如IList< int>和List< int>等價。
非泛型集合與Object類型的泛型集合的數(shù)據(jù)契約等價。例如:List< Object>與ArrayList等價,ArrayList與Object[]也是等價的。
這就是為什么上面的示例中,實(shí)現(xiàn)IList< int>和ICollection< int>的集合類型的數(shù)據(jù)契約名稱都是ArrayOfint的原因。例如下面兩個數(shù)據(jù)契約是等價的:
- [DataContract(Name="Customer")] public class Customer1
- {
- [DataMember] public string customerName;
- [DataMember] public Collection< string> addresses;
- [DataMember] public string[] telephones;
- }
- [DataContract(Name="Customer")] public class Customer2
- {
- [DataMember] public string customerName;
- [DataMember] public ICollection< string> addresses;
- [DataMember] public List< string> telephones;
- }
注意: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.
以上就是對WCF非定制數(shù)據(jù)契約集合的一些簡單介紹。
網(wǎng)站題目:WCF非定制數(shù)據(jù)契約集合概念解析
當(dāng)前地址:http://fisionsoft.com.cn/article/cdjdpes.html


咨詢
建站咨詢
