[WCF-REST]Cilent端叫用不使用服務參考
前言
WCF中的REST服務,最令我覺得特別的是Client開發端可以不用[服務參考],就可以直接透過Uri去作存取,
但麻煩的是Client端直接使用Uri叫用時就要知道要傳什麼樣的Url Format以及回傳什麼樣的格式(例:xml、json...)
,萬一服務端的設定改了,在Client是無法在設計時期知道的,如下範例
WCF端
Client:使用WebRequest取回Stream的資料並作反序列化回User物件
上述若WCF端改了參數,則Client端無法知道,當然你也可以使用[服務參考]產生WCF參考來解決,如下圖
而若你不想用[服務參考]的話,另外一種作法就是讓Clinet端也去實作與WCF服務相同的介面。
範例說明
1.專案架構
2.共用端程式,新增一個共用介面IMyWCF
3.WCF服務端程式,實作IMyWCF回傳使用者物件
WCF組態設定
4.Client端程式
透過實作ClientBase及共用層的IMyWCF來叫用WCF
Client端組態設定
執行程式
寫的不清楚的地方、敬請見諒。
範例下載
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