1. 程式人生 > >WCF系列教程之WCF服務協定

WCF系列教程之WCF服務協定

需要 通信 mes 配置 ace 交換 對象 web服務 程序

本文參考自:http://www.cnblogs.com/wangweimutou/p/4422883.html,純屬讀書筆記,加深記憶

一、服務協定簡介:

1、WCF所有的服務協定層裏面的服務接口,都有一個ServiceContract的特性修飾,服務接口裏面的操作方法都有OperationContract特性修飾,why?

(1)、服務契約的實現要靠ServiceContractAttribute 屬性定義

(2)、服務契約方法的實現要靠 OperationContractAttribute 屬性定義

2、如果一個協定(接口)需要向除其之外的客戶端公開,那麽該接口就應該加上[ServiceContract]特性修飾,那麽其信息就由ServiceContractAttribute 屬性表示,ServiceContractAttribute關聯的接口與Web服務描述語言(WSDL)<portType>元素松散相關,所以服務協定也具備了以下兩個功能:

(1)、可用於服務端以指定終結點(可以是配置文件,也可以是硬編碼)的方式,來控制其向其他客戶端暴露的內容

(2)、客戶端可以通過它來於服務端進行通信

3、定義玩了服務協定層(服務接口層),就可以實現當前協定層,實現服務協定層後並將其與WCF 綁定和 EndpointAddress 對象一起使用時,此服務協定將公開以供客戶端使用。

4、WSDL(Web Service Description Language)Web服務器描述語言是用XML文檔來描述Web服務的標準,是Web服務的接口定義語言,由Ariba、Intel、IBM、MS等共同提出,通過WSDL,可描述Web服務的三個基本屬性:

(1)、服務做些什麽——服務所提供的操作(方法)

(2)、如何訪問服務——和服務交互的數據格式以及必要協議

(3)、服務位於何處——協議相關的地址,如URL

在WCF中,WSDL是元數據交換的一種數據格式,通過它的描述,WCF服務程序間就可以進行相應的數據交換,甚至是跨平臺的應用間也可以進行數據交換。

二、服務協定ServiceContract屬性:

1、服務契約加上ServiceContract特性修飾時,可以看到它有兩個構造函數,一個是無參,一個有參。下面具體來說下,有參的和它的參數究竟是幹嘛用的

(1)、Name:獲取或設置Web服務描述語言(WSDL)中的<portType>元素的名稱,設置此名稱之後,默認生成的代理類就是該名稱+Client

(2)、Namespace:設置或獲取Web服務描述語言(WSDL)中的<portType>yu

WCF系列教程之WCF服務協定