本篇內(nèi)容介紹了“WCF集合契約等價是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比霸州網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式霸州網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋霸州地區(qū)。費用合理售后完善,十載實體公司更值得信賴。
在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é)定)
◆接口和實現(xiàn)該接口的具體集合類的數(shù)據(jù)契約是等價的。例如IList<int>和List<int>等價。
◆非泛型集合與Object類型的泛型WCF集合契約等價等價。例如:List<Object>與ArrayList等價,ArrayList與Object[]也是等價的。
這就是為什么上面的示例中,實現(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的定義,我們可以將實現(xiàn)ICollection<string>接口的任何集合類的實例賦給addresses。同樣,我們也可以利用在數(shù)據(jù)契約中定義集合接口的機制來將WCF不支持的集合類型來應(yīng)用到我們的WCF應(yīng)用中。也就是說我們可以將ReadOnlyCollection的實例賦給Customer2的addresses.
“WCF集合契約等價是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
標(biāo)題名稱:WCF集合契約等價是什么
文章來源:http://chinadenli.net/article44/poophe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、自適應(yīng)網(wǎng)站、做網(wǎng)站、網(wǎng)站策劃、響應(yīng)式網(wǎng)站、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)