七步通使用WCF Service流程
Service對(duì)于編程人來(lái)說(shuō)并不陌生,學(xué)習(xí)了很長(zhǎng)時(shí)間的WCF,我們現(xiàn)在就WCF Service一起來(lái)和大家分析探討一下。熟悉Web Service開發(fā)的程序員對(duì)添加服務(wù)引用應(yīng)該并不陌生。在創(chuàng)建某個(gè)服務(wù)的客戶端程序時(shí),并不需要從頭開始編寫客戶端的底層通信和交互代碼,可以通過(guò)輸入服務(wù)地址來(lái)添加服務(wù)來(lái)讓Visual Studio生成客戶端代理,這樣訪問(wèn)服務(wù)就像訪問(wèn)本地組件一樣,而不需要去關(guān)心通信的細(xì)節(jié)。
#T#如果創(chuàng)建的客戶端程序項(xiàng)目和服務(wù)程序項(xiàng)目處在同一個(gè)解決方案里(很多開發(fā)者在開發(fā)服務(wù)時(shí),也會(huì)同步開發(fā)客戶端程序),還可以通過(guò)Visual Studio來(lái)幫助我們“發(fā)現(xiàn)(Discovery)”服務(wù),并添加服務(wù)引用?,F(xiàn)在開發(fā)WCF Service的程序員也可以得益于這些功能了。如果從WCF Service Library (或者WCF 節(jié)點(diǎn)下的Sequential Workflow Service Library 和 State Machine Workflow) 項(xiàng)目模板創(chuàng)建一個(gè)項(xiàng)目,那么這些功能就已經(jīng)具備。
下面我們來(lái)看一下如何使用:
1.創(chuàng)建一個(gè)客戶端程序,可以是一個(gè)Windows Console程序。
2.在同一解決方案里添加一個(gè)WCF Service Library。如圖:
3.Build WcfServiceLibrary1。
4.右鍵ConsoleApplication1,在上下文菜單中選擇“添加服務(wù)引用“(Add Service Reference).
5.此時(shí)可以看到一個(gè)對(duì)話框:
6.如果已經(jīng)知道服務(wù)的地址,可以直接在Address欄輸入地址來(lái)添加服務(wù),單擊“Go”??梢哉业竭@個(gè)地址對(duì)應(yīng)的服務(wù)。
7.如果想添加同一個(gè)解決方案里的服務(wù),可以先單擊“發(fā)現(xiàn)”來(lái)尋找服務(wù)。找到服務(wù)后,選中需要在客戶端程序生成引用的服務(wù),然后單擊確定,這個(gè)時(shí)候WcfSvcHost就會(huì)自動(dòng)啟動(dòng)來(lái)HOST服務(wù)。幾秒以后,可以看到客戶端自動(dòng)生成了服務(wù)代理代碼:
通過(guò)上面的步驟在客戶端完成了添加服務(wù)引用,現(xiàn)在可以訪問(wèn)服務(wù)了,只需要通過(guò)下面兩行代碼就可以調(diào)用服務(wù)端的一個(gè)方法:
- ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
- client.GetData(0);