日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
WCF數(shù)據(jù)契約相關(guān)示例詳細(xì)分析

我們以前為大家介紹過(guò)WCF數(shù)據(jù)契約的相關(guān)特點(diǎn)以及應(yīng)用技巧。在這里我們將會(huì)繼續(xù)根據(jù)WCF數(shù)據(jù)契約的不同類型的應(yīng)用舉例說(shuō)明,以方便大家更進(jìn)一步的對(duì)這方面內(nèi)容有一個(gè)深入的了解。

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供會(huì)澤網(wǎng)站建設(shè)、會(huì)澤做網(wǎng)站、會(huì)澤網(wǎng)站設(shè)計(jì)、會(huì)澤網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、會(huì)澤企業(yè)網(wǎng)站模板建站服務(wù),十多年會(huì)澤做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

在正常的c#開(kāi)發(fā)中我們是允許用子類去替換基類的,這也是所謂的替換原則。但是我們?cè)赪CF中確不能用數(shù)據(jù)契約的子類來(lái)替換父類的,因?yàn)檫@中間存在一個(gè)序列化的問(wèn)題。舉個(gè)例子:

我們有WCF數(shù)據(jù)契約:

 
 
 
  1. [DataContract]
  2. class Employee{...}

服務(wù)契約中:

 
 
 
  1. [ServiceContract]
  2. interface IEmployeeManager
  3. {
  4. [OperationContract]
  5. void AddEmployee(Employee employee);
  6. }

然后我們?cè)诳蛻舳说拇碇芯退阌蓄悾篒ntern繼承于

 
 
 
  1. [DataContract]
  2. class Intern:Employee{...}

然后再客戶端調(diào)用時(shí):

proxy.AddEmployee(new Intern())是會(huì)出錯(cuò)的。因?yàn)樵诜?wù)器端無(wú)法識(shí)別Intern對(duì)象,因?yàn)樗麩o(wú)法去反序列化Intern成Employee對(duì)象(WCF序列化)。

WCF數(shù)據(jù)契約提供給我們了一個(gè)解決的辦法就是使用KnownTypeAttribute特性,在基類上標(biāo)識(shí)對(duì)應(yīng)的子類就可以了。KnownTypeAttribute特性可以使用在Struct跟Class上。示例:

 
 
 
  1. [DataContract]
  2. [KnownType(typeof(Customer))]
  3. class Employee{...}
  4. [DataContract]
  5. class Intern:Employee{...}

這樣我們就在所有的WCF數(shù)據(jù)契約跟操作上,能跨越所有的服務(wù)和終結(jié)點(diǎn),允許服務(wù)接受子類。但是這樣會(huì)遇到一個(gè)問(wèn)題,我們不能去特定的指定某一個(gè)服務(wù)操作,所以KnownType的缺陷就是范圍過(guò)于廣泛。WCF提供了另外一個(gè)Attribute--ServiceKnownType.


分享名稱:WCF數(shù)據(jù)契約相關(guān)示例詳細(xì)分析
本文地址:http://m.5511xx.com/article/coopecj.html