C# WCF簡(jiǎn)單入門圖文教程(VS2010版)
在這個(gè)例子中我們將使用VS2010創(chuàng)建一個(gè)WCF服務(wù),其中會(huì)了解[DataContract][ServiceContract]等特性。
內(nèi)置的WCFSVCHost,并使用“WCF測(cè)試客戶端”來(lái)測(cè)試我們創(chuàng)建的服務(wù)。
注意下面的所有類、接口及方法都添加了public的訪問(wèn)級(jí)別。
一、建立一個(gè)WCF服務(wù)庫(kù)
創(chuàng)建一個(gè)WCF服務(wù)庫(kù)項(xiàng)目

在解決方案中會(huì)自動(dòng)為我們生成兩個(gè)類文件“IService1.cs”和“Service1.cs”。
這兩個(gè)類文件是兩個(gè)WCF示例文件,對(duì)我們開(kāi)發(fā)沒(méi)有什么用處,現(xiàn)在我們刪掉這兩個(gè)文件。

然后添加Student類

創(chuàng)建服務(wù)接口,聲明對(duì)外發(fā)布的類和方法。

實(shí)現(xiàn)我們上面聲明的服務(wù)接口,實(shí)現(xiàn)對(duì)Student的添加、刪除和檢索的具體功能。

寫完后記得編譯
二、配置服務(wù)運(yùn)行
到目前為至,我們建立好了WCF服務(wù),那我們?nèi)绾巫學(xué)CFSVCHost(WCF服務(wù)主機(jī))理解我們編寫的服務(wù)類,并能夠運(yùn)行我們編寫的服務(wù)呢。這需要我們?cè)贏pp.Config里面注冊(cè)一下我們的WCF服務(wù)。
VS為我們提供了可視化的操作界面。
在HelloWCF項(xiàng)目中右擊“App.Config”配置文件,在彈出的右鍵菜單中選擇“編輯WCF配置”。
如圖:

在此界面中暴露兩個(gè)對(duì)外的終結(jié)點(diǎn)(外部可以訪問(wèn)到的類或接口),其中下面一個(gè)是元數(shù)據(jù)終結(jié)點(diǎn),用來(lái)向外提供服務(wù)信息的終結(jié)點(diǎn)。
而另一個(gè)(即上面的終結(jié)點(diǎn)),是向外公布我們編寫的[ServiceContract]的類,但我們可以看到它的Contract還是我們?cè)诘谝徊街袆h掉的HelloWCF.IService1這個(gè)終結(jié)點(diǎn)。
不僅如此,在右側(cè)上面的黑字的服務(wù)中還依舊是我們?cè)诘谝徊街袆h除的WcfServiceLibrary1.Service1服務(wù)。這說(shuō)明雖然在第一步中我們刪除了那兩個(gè)自動(dòng)生成的類文件,但配置文件中仍沒(méi)有刪除這兩個(gè)類文件的配置信息。
下面我們把它們改變一下。
單擊左側(cè)的“服務(wù)”-“HelloWCF.Service1”在右側(cè)的Name,彈出“服務(wù)類型瀏覽器”對(duì)話框,在此類型中我們找到此WCF服務(wù)項(xiàng)目編譯出來(lái)的HelloWCF.dll文件,雙擊它就可以出現(xiàn)此服務(wù)中的對(duì)外公布的服務(wù),點(diǎn)擊選中它單擊確定。

這樣我們就可以把對(duì)外公司的服務(wù)改變?yōu)槲覀儎偩帉懙姆?wù)了。
然后,我們展開(kāi)左側(cè)“服務(wù)”->“HelloWCF.StudentService”->“終結(jié)點(diǎn)”,單擊第一個(gè)“空名稱”,從右邊的“終結(jié)點(diǎn)屬性”中的Contract中我們可以看到,這里的Contract仍然用的是HelloWCF.IService1。

我們按照上面的做法,找到此WCF服務(wù)項(xiàng)目編譯出來(lái)的HelloWCF.dll,雙擊它找到里面對(duì)應(yīng)的ServiceContract點(diǎn)擊確定就可以了。

在高級(jí)目錄樹中,為服務(wù)行為配置命名,名字隨便取。

在服務(wù)中選中,剛才的行為配置。

配置完成,Ctrl+S 保存下。
配置后的App.Config

三、測(cè)試WCF
在VisualStudio中為我們提供了測(cè)試WCF的工具,按F5啟動(dòng)WCF會(huì)出現(xiàn)兩個(gè)東西
一個(gè)是在右下角的托盤圖標(biāo)中會(huì)出現(xiàn)WCFSVCHost(WCF服務(wù)主機(jī)),它為我們?cè)陂_(kāi)發(fā)時(shí)候提供了一個(gè)運(yùn)行WCF的服務(wù)器,用來(lái)為測(cè)試客戶端提供WCF服務(wù)。
另一個(gè)是“WCF測(cè)試客戶端”
“測(cè)試客戶端”從WcfSVCHost中取得WCF服務(wù)的元數(shù)據(jù),解析為左側(cè)的“服務(wù)結(jié)構(gòu)樹”,從這里面我們可以看到此WCF服務(wù)為我們提供了一個(gè)服務(wù)契約“IStudentService”,此服務(wù)契約中對(duì)外提供了三個(gè)可調(diào)用的方法。
點(diǎn)擊AddStudent()方法輸入?yún)?shù)點(diǎn)擊調(diào)用

點(diǎn)擊GetAllStudents(),在Response中我們看到了返回的結(jié)果。

在本例中我們看到,WCF作為面向?qū)ο蠛兔嫦蚍?wù)的橋梁,提供了非常方便的工具,無(wú)論是開(kāi)發(fā),配置還是測(cè)試,為我們可以快速的上手并提供面向服務(wù)的應(yīng)用。你可以把WCF類庫(kù)當(dāng)作普通類庫(kù)去做,但他提供了更強(qiáng)大的面向服務(wù)的特性。
WCF的理論學(xué)習(xí)復(fù)雜程度遠(yuǎn)大于其的使用難度,而如果你是一名初學(xué)者,千萬(wàn)不要先陷入其復(fù)雜的理論學(xué)習(xí)中,花費(fèi)很多的時(shí)間,而且看得暈頭轉(zhuǎn)向,最好先去實(shí)踐,先去用,這樣再去看WCF的深入概念和技術(shù)才會(huì)在大腦里面形成更好理解的印象和對(duì)應(yīng),你認(rèn)為呢。
以上就是WCF簡(jiǎn)單入門教程,希望對(duì)大家的學(xué)習(xí)有所幫助。
相關(guān)文章
C#的FileInfo類實(shí)現(xiàn)文件操作實(shí)例
這篇文章主要介紹了C#的FileInfo類實(shí)現(xiàn)文件操作實(shí)例,比較實(shí)用的功能,需要的朋友可以參考下2014-07-07
c# 圓形識(shí)別方案和直線識(shí)別方案的參考示例
這篇文章主要介紹了c# 圓形識(shí)別方案和直線識(shí)別方案的實(shí)現(xiàn)示例,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-03-03
unity實(shí)現(xiàn)簡(jiǎn)單的貪吃蛇游戲
這篇文章主要為大家詳細(xì)介紹了unity實(shí)現(xiàn)簡(jiǎn)單的貪吃蛇游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03
C#實(shí)現(xiàn)根據(jù)數(shù)字序號(hào)輸出星期幾的簡(jiǎn)單實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)根據(jù)數(shù)字序號(hào)輸出星期幾的簡(jiǎn)單實(shí)例,代碼簡(jiǎn)潔實(shí)用,也有助于初學(xué)者更好的理解C#的switch和if語(yǔ)句的流程控制,需要的朋友可以參考下2014-07-07
Unity實(shí)現(xiàn)紅酒識(shí)別的示例代碼
本文主要介紹了如何通過(guò)Unity實(shí)現(xiàn)紅酒識(shí)別,可以實(shí)現(xiàn)識(shí)別圖像中的紅酒標(biāo)簽,返回紅酒名稱、國(guó)家、產(chǎn)區(qū)、酒莊、類型、糖分、葡萄品種、酒品描述等信息,感興趣的可以學(xué)習(xí)一下2022-02-02
Unity工具類ScrollView實(shí)現(xiàn)拖拽滑動(dòng)翻頁(yè)
這篇文章主要為大家詳細(xì)介紹了Unity工具類ScrollView實(shí)現(xiàn)拖拽滑動(dòng)翻頁(yè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04

