(2) 第二章 WCF服務與數據契約 服務契約詳解(一) - 服務契約

本章節主要目的:服務契約的基礎知識

服務契約與代碼

首先從接口入手[ServiceContract]特性定義了服務契約,然後通過[OperationContract]特性定義方法。

示例代碼如下:



以上DEMO CODE是一個計算器的加的功能接口。在接口ICalculator上附加[ServiceContract]特性後說明這是一個服務契約,對外公開。函數上的[OperationContract]特性定義操作方法,對外公開。

接下來介紹一個微軟的工具svcutil.exe,可以容易的將服務生成代碼,接下使用這個工具提取上段代碼的元數據。

在Visual Studio 命令提示符下,執行svcutil.exe [路徑]\[名稱].dll

示例svcutil.exe C:\Users\Sunnes001\Desktop\WCF服務契約重載\WCF服務契約重載\WCF服務契約重載\bin\WCF服務契約重載.dll

大家可以看到生成了3個文件,以下對3個文件的作用進行描述。

tempuri.org.wsdl                                                                        WSDL文檔,包括對XSD文件的引用、消息的定義、端口的類型和服務的操作

tempuri.org.wsdl下載

tempura.org.xsd                                                                         用於方法特性的XSD Schema

tempura.org.xsd下載

schemas.microsoft.com.2003.10.Serialization.xsd            用於簡單.NET類型的標準XSD Schema

schemas.microsoft.com.2003.10.Serialization.xsd下載



源代碼與WSDL元素之間的映射規則


WSDL元素                                                                  源代碼

消息名稱:ICalculator_Add                                       接口名稱_方法名稱+輸入/輸出

端口類型名稱:ICalculator                                        接口名稱

操作名稱:Add                                                             方法名稱

到此應該可以瞭解到了,在代碼定義的特性都會在WSDL文檔中通過以上的映射規則映射。


接下來對以上接口的實現

WCF中的接口和普通的接口是一樣的要求,必須實現每個接口。

代碼



以下是客戶端對服務端的引用:

引用成功後就可以在客戶端調用了

代碼如下:



簡單WCF調用的實現源碼下載




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章