如何實(shí)現(xiàn)WCF雙向通信數(shù)據(jù)傳輸
那天在論壇上看了看怎么實(shí)現(xiàn)雙向通信的文章,所以大家有communitysever的可以從里面獲得然后反編譯為自己所用,沒(méi)有的就到網(wǎng)絡(luò)上搜下吧,有許多資源呢!現(xiàn)在我們來(lái)討論一下WCF雙向通信
為了使我們能夠更好地對(duì)比WCF雙向通信在Remoting中和WCF中的實(shí)現(xiàn),我們的Sample采用一樣的業(yè)務(wù)邏輯——調(diào)用一個(gè)數(shù)學(xué)計(jì)算的遠(yuǎn)程調(diào)用,除了傳遞相應(yīng)的操作數(shù)之外,我們還傳遞一個(gè)對(duì)象,這個(gè)對(duì)象可以在Server端中回調(diào) (Callback) 把運(yùn)算結(jié)果在Client端顯示出來(lái)。#t#
可以通過(guò)下面的URL下載源代碼:http://www.cnblogs.com/files/artech/Artech.WCFService.2007.03.02.zip
Step1:構(gòu)建整個(gè)Solution的整體構(gòu)架。
整個(gè)Solution的架構(gòu)在我的之前的Blog有了詳細(xì)的介紹([原創(chuàng)]我的WCF雙向通信之旅(1):創(chuàng)建一個(gè)簡(jiǎn)單的WCF雙向通信程序),這里只作一個(gè)簡(jiǎn)單的介紹。
Artech.WCFService.Contract: Class Library Project,用來(lái)保存Contract(Service Contact、Message Contract、Data Contract),之所以把Contract獨(dú)立出來(lái)的原因是考慮到他同時(shí)被Server端——Service本身和Service Hosting和Client端使用
Artech.WCFService.Service:Class Library Project,Service的業(yè)務(wù)邏輯,這個(gè)Project引用Artech.WCFService.Contract Project和System.ServiceModel DLL。
Artech.WCFService.Hosting:Console Application,用于以Self-Hosting的方式Host Service。這個(gè)Project引用Artech.WCFService.Contract和Artech. Project WCFService.Service。Project和System.ServiceModel DLL。
Artech.WCFService.Client:Console Application,用以模擬現(xiàn)實(shí)中的調(diào)用Service的Clinet。這個(gè)Project引用Artech.WCFService.Contract Project 和System.ServiceModel DLL。
http://localhost/WCFService: Web Site Project,用于模擬如何把Service Host到IIS中。這個(gè)Project引用Artech.WCFService.Contract、Artech.WCFService.Service和System.ServiceModel DLL。