[WCF-REST]Cilent端叫用不使用服務參考

前言

WCF中的REST服務,最令我覺得特別的是Client開發端可以不用[服務參考],就可以直接透過Uri去作存取,

但麻煩的是Client端直接使用Uri叫用時就要知道要傳什麼樣的Url Format以及回傳什麼樣的格式(例:xml、json...)

,萬一服務端的設定改了,在Client是無法在設計時期知道的,如下範例

WCF端

image

Client:使用WebRequest取回Stream的資料並作反序列化回User物件

image

上述若WCF端改了參數,則Client端無法知道,當然你也可以使用[服務參考]產生WCF參考來解決,如下圖

image

而若你不想用[服務參考]的話,另外一種作法就是讓Clinet端也去實作與WCF服務相同的介面。

範例說明

1.專案架構

image

2.共用端程式,新增一個共用介面IMyWCF

image

3.WCF服務端程式,實作IMyWCF回傳使用者物件

image

WCF組態設定

image

4.Client端程式
透過實作ClientBase及共用層的IMyWCF來叫用WCF

image

Client端組態設定

image

執行程式

image

寫的不清楚的地方、敬請見諒。

範例下載

http://cid-fab913153ae2ed86.office.live.com/self.aspx/.Public/Code/WCF/WcfRestSampleDemo.rar

參考文章

http://www.switchonthecode.com/tutorials/creating-a-rest-client-using-wcf

http://www.dotblogs.com.tw/regionbbs/archive/2010/03/29/vs2010.wcf.4.rest.service.expose.aspx

這個網誌中的熱門文章

IIS 設定只允許特定IP進入