原文連結:http://www.cnblogs.com/overblue/archive/2010/11/07/1871345.html
sample下載
建立服務端函數
“服務端函數”這個命名實在不規範,不過文章是給自己看的,就按自己的習慣進行命名吧。總而言之,我要在服務端建立一個服務函數,供用戶端進行調用。首先運行VS2010,選擇檔案 -> 建立 -> 項目。在建立項目視窗左邊的目錄中,選擇“WCF”,再在右邊選擇“WCF 服務應用程式”。項目名稱叫“WCFServer”、解決方案名稱為“WCFTest”:
建立後,預設的介面和實現檔案,其檔案名稱預設Service1,不是十分規範,所以我們將檔案名稱和類名改命為CoreService。檔案名稱的更改直接在解決方案資源管理中直接改名就好了。但對類名的更改,應該使用F2重構功能變更。
將類名和介面重新命名後,現在我們就需要增加自己的服務端函數了。在這個例子裡面,我們只是簡單地增加一個取服務端時間的函數:GetServerDateTime。首先開啟ICoreService.cs介面檔案,在最後增加一個服務端函數介面:
?
| 12 |
[OperationContract]DateTime GetServerDateTime(); |
接著,開啟CoreService.svc.cs檔案,在類的最後面增加如下代碼:
?
| 1234 |
public DateTime GetServerDateTime(){ return System.DateTime.Now;} |
儲存項目,並運行應用程式後,程式會彈出一個“WCF測試用戶端”應用程式,在程式視窗的左邊,我們可以看到我們剛才增加的介面和對應的函數。這是我們首先要做的,就是將地址複製下來:
這個時間關閉程式就可以了。
三、建立用戶端調用程式
通過“方案總管”,右鍵建立一個項目。在建立項目視窗左邊分類樹,選擇“Windows”,在右邊列表中選擇“Windows表單應用程式”,而項目名稱則為“WCFClient”,最後將WCFClient程式“設為啟動項目”。
在WCFClinet的項目中,右鍵選擇“添加服務應用”菜單。
在彈出的“添加服務應用”視窗中,將之前複製到地址貼粘上去後再“確定”。確定無誤後,直接點“確定”就可以了。
到目前為止,所有的準備工作都已經可以了。下在我們編寫一段代碼來實現調用服務端函數的功能。首先我們在視窗上添加一個Label和一個Button控制項:
雙擊Button編寫如下代碼:
?
| 12345678910111213 |
using (ServiceReference1.CoreServiceClient Host = new ServiceReference1.CoreServiceClient()) { //記錄開始時間 int StartTime = System.Environment.TickCount; for (int i = 0; i < 1000; i++) { Host.GetServerDateTime(); } //顯示執行時間 label1.Text = (System.Environment.TickCount - StartTime).ToString() + " ms"; Host.Close(); |
?
這樣就大功告成了!不過有一點比較奇怪,就是如果是第一次執行,它的速度總經正常調用慢1到2秒。但只要用戶端不是第一次進行串連,則速度是相當的快。好了,整個WCf例子完成了,不過WCF的宿主還不是一個單獨的應用程式,所以後面還會繼續精進。