成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WCF服務合同相關內容解讀

開發 開發工具
WCF服務合同被定了四種類型,他們的相關內容將會分別在文章中得以體現。希望大家可以通過此來充分掌握這一應用技巧。

WCF是由微軟公司開發的一款建立于.Net Framework 2.0基礎上的開發插件。在WCF中,所有的服務都暴露合同。合同是一種描述服務所實現功能的平臺中立的標準的方式。WCF定義了四種類型的WCF服務合同:#t#

· WCF服務合同描述你可以在服務上執行哪些操作。

· 數據合同定義哪些數據類型被傳入和傳出服務。WCF為內置類型定義隱式合同,例如int和string,但是你可以容易地為定制類型定義顯式的選入式數據合同。

· 錯誤合同定義哪些錯誤將被該服務所激發,以及該服務怎樣處理錯誤信息和把如何把它們傳播到客戶端。

· 消息合同允許服務直接與消息進行交互。消息合同可以被類型化或非類型化,并且有點類似于CLR中的遲綁定調用。不過,消息合同很少為SOA開發者所用。

在這4種類型的合同中,本文將集中討論WCF服務合同。

你可以使用ServiceContractAttribute來定義一個服務合同,并且你可以把該屬性應用于一個接口或一個類,如列表1(見本文相應下載源碼)所示。

服務合同獨立于接口或類可見性-公共或內部可見性是一個CLR概念,而不是WCF概念。在一個內部接口上應用 ServiceContractAttribute將把該接口暴露為一個公共服務合同(可以跨越服務邊界進行消費)。沒有 ServiceContractAttribute的話,該接口對WCF客戶端是不可見的,這與面向服務的宗旨一致(服務邊界是顯式的)。為了強制實現這一點,所有的合同必須是嚴格選入的。

OperationContractAttribute僅能被應用到方法(而不是屬性,索引器或事件,這都是一些CLR概念)中。OperationContractAttribute把一個合同方法暴露為在服務合同上執行的一種邏輯操作。該接口上的其它不具有OperationContractAttribute屬性的方法不會成為合同的一部分。這可以強制實現顯式的服務邊界,并且,對于操作本身來說,保持一種選入模型。注意,合同操作獨立于方法可見性。列表1展示了通過定義一個合同接口把WCF服務合同與其實現分離開來的最好應用。

另外,你還可以直接把ServiceContractAttribute和OperationContractAttribute應用于類,在這種情況下,WCF使用OperationContractAttribute從類中推斷出一個服務合同和方法。這是一種應該盡量避免使用的技術:

 

  1. //盡量避免使用  
  2. [ServiceContract]  
  3. class MyService  
  4. {  
  5. [OperationContract] //可見性并不要緊  
  6. string MyMethod(string text)  
  7. {  
  8. return "Hello " + text;  
  9. }  
  10. public string MyOtherMethod(string text)  
  11. {  
  12. return "Cannot call this method over WCF";  
  13. }  

 

這個ServiceContractAttribute把CLR接口(或推斷的接口)映射到一個技術中立的WCF合同上。通過派生和實現多個帶有 ServiceContractAttribute的接口,單個類可以支持多個合同。類能夠通過隱式或顯式方式實現這個接口,因為該方法可見性對WCF沒有任何影響。然而,存在許多實現約束:避免使用參數化的構造器,因為WCF僅使用默認的構造器。盡管該類能夠使用內部屬性,索引器和靜態成員,但是沒有 WCF客戶端能夠存取它們。

以上就是對WCF服務合同的所有介紹。

責任編輯:曹凱 來源: CSDN
相關推薦

2010-02-26 09:50:57

WCF傳輸安全機制

2010-02-26 13:21:42

WCF通道形狀

2010-03-02 18:01:07

WCF自定義消息篩選器

2010-01-27 16:56:42

Android內核

2010-01-28 16:19:39

Android She

2010-02-01 09:18:49

C++函數指針

2010-06-17 16:12:43

WAP協議

2010-01-22 18:24:28

VB.NET重構

2010-07-20 13:07:13

SQL Server存

2010-01-28 16:30:16

Android數據傳遞

2009-08-28 15:16:18

C#泛型集合

2010-01-07 14:26:37

VB.NET變量

2010-06-08 17:30:56

IPv6協議棧

2010-01-07 11:38:25

VB.NET鍵盤事件

2010-04-02 16:53:34

Oracle內存結構

2010-02-03 15:40:11

C++地址運算符

2010-01-13 16:15:47

VB.NET消息隊列

2010-03-25 11:30:25

2010-04-08 10:02:15

Oracle體系結構

2010-03-02 15:53:02

WCF服務合同
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区国产 | 99久久婷婷国产综合精品 | 久久久国产精品一区 | 国产精品久久久久久久久久久久冷 | 日韩视频―中文字幕 | 精品91视频 | 国产精品人人做人人爽 | 精品久久久久久久久久久久久久 | 久久久精品网站 | 中文av网站 | 久久久久久久久久久成人 | 亚洲精品久久久 | 国产精品美女www爽爽爽视频 | 国产精品三级久久久久久电影 | 日本一二三区高清 | 9久9久| 日韩视频中文字幕 | 伊人久久大香线 | 国产日韩av一区二区 | 天天插天天射天天干 | 久久亚洲一区二区三区四区 | 国产精品久久久久久久免费大片 | 97色免费视频 | 韩日有码 | 亚洲国产精品久久久久婷婷老年 | 91精品久久久久久综合五月天 | 在线视频 欧美日韩 | 午夜视频在线免费观看 | 爱爱免费视频 | 久久精品欧美一区二区三区麻豆 | 亚洲精品v日韩精品 | 日韩第一区 | www.国产.com| 欧美视频一区二区三区 | 91精品国产高清一区二区三区 | 免费黄色网址视频 | 91欧美| 精久久久久 | 国产日韩欧美在线 | 久久久久无码国产精品一区 | 美日韩视频 |