本文轉自:http://blogs.msdn.com/b/wcftoolsteamblogcn/archive/2009/01/12/wcf.aspx
前一篇博文“介紹VS2008中的WCF工具 ”,已經提到加入服務參考(Add service reference…)和Auto-attaching。現在我們就具體介紹如何使用這兩個功能來簡化用戶端的開發與調試工作以及使用中的一些技巧。
這一篇我們先向大家介紹加入服務參考(Add service reference…)。
熟悉Web Service開發的程式員對加入服務參考應該並不陌生。在建立某個服務的用戶端程式時,並不需要從頭開始編寫用戶端的底層通訊和互動代碼,可以通過輸入服務地址來添加服務來讓Visual Studio產生用戶端代理,這樣訪問服務就像訪問本機群組件一樣,而不需要去關心通訊的細節。如果建立的用戶端程式項目和服務程式項目處在同一個解決方案裡(很多開發人員在開發服務時,也會同步開發用戶端程式),還可以通過Visual Studio來協助我們“發現(Discovery)”服務,並加入服務參考。
現在開發WCF Service的程式員也可以得益於這些功能了。如果從WCF Service Library (或者WCF 節點下的Sequential Workflow Service Library 和 State Machine Workflow) 項目模板建立一個項目,那麼這些功能就已經具備。
下面我們來看一下如何使用:
1.建立一個用戶端程式,可以是一個Windows Console程式。
2. 在同一解決方案裡添加一個WCF Service Library。
3.Build WcfServiceLibrary1。
4.右鍵ConsoleApplication1,在操作功能表中選擇“加入服務參考“(Add Service Reference).
5.此時可以看到一個對話方塊:
6.如果已經知道服務的地址,可以直接在Address欄輸入地址來添加服務,單擊“Go”。可以找到這個地址對應的服務。
7.如果想添加同一個解決方案裡的服務,可以先單擊“發現”來尋找服務。找到服務後,選中需要在用戶端程式產生引用的服務,然後單擊確定,這個時候WcfSvcHost就會自動啟動來HOST服務。幾秒以後,可以看到用戶端自動產生了服務代理代碼:
通過上面的步驟在用戶端完成了加入服務參考,現在可以訪問服務了,只需要通過下面兩行代碼就可以調用服務端的一個方法:
ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
client.GetData(0);
提示及注意點:
1. vs2008的WCF節點下有四個項目模板,但是Syndication Service Library項目並不具備這個功能,這是因為這個服務並沒有提供Metadata。
2. 在“發現”服務前,必須先Build服務端項目(也就是上文第3步必不可少)以保證添加的服務引用是最新的。在將來版本的Visual Studio 中我們會做進一步的簡化。