在這個例子中我們將使用vs2010創建一個wcf服務,其中會了解[datacontract][servicecontract]等特性。
內置的wcfsvchost,并使用“wcf測試客戶端”來測試我們創建的服務。
注意下面的所有類、接口及方法都添加了public的訪問級別。
一、建立一個wcf服務庫
創建一個wcf服務庫項目
在解決方案中會自動為我們生成兩個類文件“iservice1.cs”和“service1.cs”。
這兩個類文件是兩個wcf示例文件,對我們開發沒有什么用處,現在我們刪掉這兩個文件。
然后添加student類
創建服務接口,聲明對外發布的類和方法。
實現我們上面聲明的服務接口,實現對student的添加、刪除和檢索的具體功能。
寫完后記得編譯
二、配置服務運行
到目前為至,我們建立好了wcf服務,那我們如何讓wcfsvchost(wcf服務主機)理解我們編寫的服務類,并能夠運行我們編寫的服務呢。這需要我們在app.config里面注冊一下我們的wcf服務。
vs為我們提供了可視化的操作界面。
在hellowcf項目中右擊“app.config”配置文件,在彈出的右鍵菜單中選擇“編輯wcf配置”。
如圖:
在此界面中暴露兩個對外的終結點(外部可以訪問到的類或接口),其中下面一個是元數據終結點,用來向外提供服務信息的終結點。
而另一個(即上面的終結點),是向外公布我們編寫的[servicecontract]的類,但我們可以看到它的contract還是我們在第一步中刪掉的hellowcf.iservice1這個終結點。
不僅如此,在右側上面的黑字的服務中還依舊是我們在第一步中刪除的wcfservicelibrary1.service1服務。這說明雖然在第一步中我們刪除了那兩個自動生成的類文件,但配置文件中仍沒有刪除這兩個類文件的配置信息。
下面我們把它們改變一下。
單擊左側的“服務”-“hellowcf.service1”在右側的name,彈出“服務類型瀏覽器”對話框,在此類型中我們找到此wcf服務項目編譯出來的hellowcf.dll文件,雙擊它就可以出現此服務中的對外公布的服務,點擊選中它單擊確定。
這樣我們就可以把對外公司的服務改變為我們剛編寫的服務了。
然后,我們展開左側“服務”->“hellowcf.studentservice”->“終結點”,單擊第一個“空名稱”,從右邊的“終結點屬性”中的contract中我們可以看到,這里的contract仍然用的是hellowcf.iservice1。
我們按照上面的做法,找到此wcf服務項目編譯出來的hellowcf.dll,雙擊它找到里面對應的servicecontract點擊確定就可以了。
在高級目錄樹中,為服務行為配置命名,名字隨便取。
在服務中選中,剛才的行為配置。
配置完成,ctrl+s 保存下。
配置后的app.config
三、測試wcf
在visualstudio中為我們提供了測試wcf的工具,按f5啟動wcf會出現兩個東西
一個是在右下角的托盤圖標中會出現wcfsvchost(wcf服務主機),它為我們在開發時候提供了一個運行wcf的服務器,用來為測試客戶端提供wcf服務。
另一個是“wcf測試客戶端”
“測試客戶端”從wcfsvchost中取得wcf服務的元數據,解析為左側的“服務結構樹”,從這里面我們可以看到此wcf服務為我們提供了一個服務契約“istudentservice”,此服務契約中對外提供了三個可調用的方法。
點擊addstudent()方法輸入參數點擊調用
點擊getallstudents(),在response中我們看到了返回的結果。
在本例中我們看到,wcf作為面向對象和面向服務的橋梁,提供了非常方便的工具,無論是開發,配置還是測試,為我們可以快速的上手并提供面向服務的應用。你可以把wcf類庫當作普通類庫去做,但他提供了更強大的面向服務的特性。
wcf的理論學習復雜程度遠大于其的使用難度,而如果你是一名初學者,千萬不要先陷入其復雜的理論學習中,花費很多的時間,而且看得暈頭轉向,最好先去實踐,先去用,這樣再去看wcf的深入概念和技術才會在大腦里面形成更好理解的印象和對應,你認為呢。
以上就是wcf簡單入門教程,希望對大家的學習有所幫助。