一、定義服務契約
ServiceContract特性:該特性可被用來作用於子類或者接口之上,並允許重複聲明。
OperationContract特性:只有定義了該特性的方法才會被放入服務之中。
具體代碼實現:
l 首先在VS中新建一個類庫:
新建類庫
l 創建一個接口文件IHelloService:
創建接口文件
l 文件中添加引用System.ServiceModel
添加引用
l 然後在接口文件上方加入using System.ServiceModel;
引入命名空間
l 在接口上方定義服務契約(ServiceContract),然後在接口方法上定義操作契約(OperationContract)
定義契約
l 添加一個實現類實現IHelloService接口
添加實現類
l 實現接口的方法SayHello()
實現方法
二、創建宿主程序
ServiceHost類型:當IIS或者WAS作為宿主程序時,IIS和WAS會自動創建ServiceHost類型
手動創建的基本語法public ServiceHost(Type ServiceType,params Uri[] baseAddress);
具體代碼如下(控制檯應用程序):
l 解決方案裡面添加項目為控制檯應用程序:
添加控制檯應用程序
l 如第一個添加引用(System.ServiceModel)
添加引用
l 由於要在宿主程序綁定對象,所以還需添加引用using
System.ServiceModel.Channels
添加引用
l 在項目中定義一個宿主程序,包括定義基地址、服務綁定、以及契約接口。
定義宿主程序
l 宿主程序還需定義銷燬服務對象的方法
銷燬服務對象
l 定義基地址,服務契約實現類型、服務契約接口以及服務綁定
定義基地址
l 注意要添加HelloService項目引用,構造服務對象:
添加引用
l 定義打開服務的方法
定義打開服務的方法
l 注意由於我們創建ServiceHost對象沒有實例化,所以我們需要對對象進行封裝
l 添加構造方法調用創建宿主程序的方法
l 主程序中調用服務開啟方法
l 生成並啟動服務
三、創建客戶端程序訪問服務
l 添加新的控制檯應用程序,命名為HelloClient
l 還需添加以下引用:System.ServiceModel、System.ServiceModel.Channels、HelloService,然後using進行
加入以下代碼:
硬編碼定義服務契約
然後在主程序中利用代理調用服務
成功示例:
這就是第二天的全部內容,到此你也可以定義你的第一個WCF程序啦。要堅持下去哦!如果你覺得對您有用的話,可以點贊、收藏、轉發哦!謝謝大家的支持哦~
閱讀更多 努力的浩浩 的文章