跟著我學WCF程序第二天:定義一個WCF程序

一、定義服務契約

ServiceContract特性:該特性可被用來作用於子類或者接口之上,並允許重複聲明。

OperationContract特性:只有定義了該特性的方法才會被放入服務之中。

具體代碼實現:

l 首先在VS中新建一個類庫:

跟著我學WCF程序第二天:定義一個WCF程序

新建類庫

l 創建一個接口文件IHelloService:

跟著我學WCF程序第二天:定義一個WCF程序

創建接口文件

l 文件中添加引用System.ServiceModel

跟著我學WCF程序第二天:定義一個WCF程序

添加引用

l 然後在接口文件上方加入using System.ServiceModel;

跟著我學WCF程序第二天:定義一個WCF程序

引入命名空間

l 在接口上方定義服務契約(ServiceContract),然後在接口方法上定義操作契約(OperationContract)

跟著我學WCF程序第二天:定義一個WCF程序

定義契約

l 添加一個實現類實現IHelloService接口

跟著我學WCF程序第二天:定義一個WCF程序

添加實現類

l 實現接口的方法SayHello()

跟著我學WCF程序第二天:定義一個WCF程序

實現方法

二、創建宿主程序

ServiceHost類型:當IIS或者WAS作為宿主程序時,IIS和WAS會自動創建ServiceHost類型

手動創建的基本語法public ServiceHost(Type ServiceType,params Uri[] baseAddress);

具體代碼如下(控制檯應用程序):

l 解決方案裡面添加項目為控制檯應用程序:

跟著我學WCF程序第二天:定義一個WCF程序

添加控制檯應用程序

l 如第一個添加引用(System.ServiceModel)

跟著我學WCF程序第二天:定義一個WCF程序

添加引用

l 由於要在宿主程序綁定對象,所以還需添加引用using

System.ServiceModel.Channels

跟著我學WCF程序第二天:定義一個WCF程序

添加引用

l 在項目中定義一個宿主程序,包括定義基地址、服務綁定、以及契約接口。

跟著我學WCF程序第二天:定義一個WCF程序

定義宿主程序

l 宿主程序還需定義銷燬服務對象的方法

跟著我學WCF程序第二天:定義一個WCF程序

銷燬服務對象

l 定義基地址,服務契約實現類型、服務契約接口以及服務綁定

跟著我學WCF程序第二天:定義一個WCF程序

定義基地址

l 注意要添加HelloService項目引用,構造服務對象:

跟著我學WCF程序第二天:定義一個WCF程序

添加引用

l 定義打開服務的方法

跟著我學WCF程序第二天:定義一個WCF程序

定義打開服務的方法

l 注意由於我們創建ServiceHost對象沒有實例化,所以我們需要對對象進行封裝

跟著我學WCF程序第二天:定義一個WCF程序

l 添加構造方法調用創建宿主程序的方法

跟著我學WCF程序第二天:定義一個WCF程序

l 主程序中調用服務開啟方法

跟著我學WCF程序第二天:定義一個WCF程序

l 生成並啟動服務

跟著我學WCF程序第二天:定義一個WCF程序

三、創建客戶端程序訪問服務

l 添加新的控制檯應用程序,命名為HelloClient

跟著我學WCF程序第二天:定義一個WCF程序

l 還需添加以下引用:System.ServiceModel、System.ServiceModel.Channels、HelloService,然後using進行

跟著我學WCF程序第二天:定義一個WCF程序

加入以下代碼:

跟著我學WCF程序第二天:定義一個WCF程序

硬編碼定義服務契約

跟著我學WCF程序第二天:定義一個WCF程序

然後在主程序中利用代理調用服務

跟著我學WCF程序第二天:定義一個WCF程序

成功示例:

跟著我學WCF程序第二天:定義一個WCF程序

這就是第二天的全部內容,到此你也可以定義你的第一個WCF程序啦。要堅持下去哦!如果你覺得對您有用的話,可以點贊、收藏、轉發哦!謝謝大家的支持哦~


分享到:


相關文章: