- WCF技術剖析(卷1)
- 蔣金楠
- 480字
- 2018-12-27 11:32:34
1.3.2 步驟二 創建服務契約
WCF采用基于契約的交互方式實現了服務的自治,以及客戶端和服務端之間的松耦合。WCF包含4種類型的契約:服務契約、數據契約、消息契約和錯誤契約,這里著重于服務契約。從功能上講,服務契約抽象了服務提供的所有操作;而站在消息交換的角度來看,服務契約則定義了基于服務調用的消息交換過程中,請求消息和回復消息的結構,以及采用的消息交換模式。第4章將提供對服務契約的詳細介紹。
一般地,我們通過接口的形式定義服務契約。通過下面的代碼,將一個接口ICalculator定義成服務契約。WCF廣泛采用基于自定義特性(Custom Attribtue)的聲明式編程模式,我們通過在接口上應用System.ServiceModel.ServiceContractAttribute特性將一個接口定義成服務契約。在應用ServiceContractAttribute特性的同時,還可以指定服務契約的名稱和命名空間。至于契約名稱和命名空間的含義和作用,請參閱第4章,在這里我們將契約名稱和命名空間設置成CalculatorService和http://www.artech.com/。
通過應用ServiceContractAttribute特性將接口定義成服務契約之后,接口的方法成員并不能自動成為服務的操作。在此方面,WCF采用的是顯式選擇(Explicit Opt-in)的策略:我們須要在相應的操作方法上面顯式地應用OperationContractAttribute特性。
using System.ServiceModel; namespace Artech.WcfServices.Contracts { [ServiceContract(Name="CalculatorService", Namespace= "http://www.artech.com/")] public interface ICalculator { [OperationContract] double Add(double x, double y); [OperationContract] double Subtract(double x, double y); [OperationContract] double Multiply(double x, double y); [OperationContract] double Divide(double x, double y); } }
推薦閱讀
- 劍指Offer(專項突破版):數據結構與算法名企面試題精講
- 圖解Java數據結構與算法(微課視頻版)
- 碼上行動:零基礎學會Python編程(ChatGPT版)
- Learn Programming in Python with Cody Jackson
- Java Web應用開發技術與案例教程(第2版)
- Visual Basic程序設計習題解答與上機指導
- Python編程與幾何圖形
- Linux Shell核心編程指南
- Learning Node.js for .NET Developers
- Java Web應用開發項目教程
- 零代碼實戰:企業級應用搭建與案例詳解
- R語言數據挖掘:實用項目解析
- 區塊鏈:技術與場景
- Mastering Swift 4(Fourth Edition)
- C/C++程序設計教程:面向過程分冊