日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
WCF雙向通信相關(guān)概念正確理解

WCF的出現(xiàn),給開發(fā)領(lǐng)域帶來了不小的變化。那么如何才能正確的應(yīng)用這一新的技術(shù)呢?在這里我們可以先從WCF雙向通信的相關(guān)概念開始了解,以此來進一步加深我們對這一工具的了解程度。#t#

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比龍崗網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式龍崗網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋龍崗地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。

WCF整合了Remoting和webService等等。而且開發(fā)簡單(相對的),它既彌補Remoting的只能在.net上運行,又彌補了asmx只能單向傳送消息的缺點。也就是說,WCF是實現(xiàn)跨平臺,在跨平臺的同時,也可以雙向通信。在WCF的編程思想中,無疑將SOA的思想體現(xiàn)的***。

首先要做的是就是定義服務(wù)契約。定義契約一般使用接口,使得實現(xiàn)和消費這個服務(wù)的雙方都要按照這個契約來實現(xiàn)相應(yīng)的接口。在雙向通信中至少要定義兩個服務(wù),一個服務(wù)是供消費程序消費的,另一個則是在callBack的時候調(diào)用的服務(wù),這個服務(wù)應(yīng)該由消費程序?qū)崿F(xiàn)。

其次,就是在服務(wù)端實現(xiàn)這些契約(說白了就是實現(xiàn)上面定義的接口)。在開發(fā)中,我們經(jīng)常會把這個實現(xiàn)獨立出來,方便在不同的宿主中發(fā)布這些服務(wù)。

***,實現(xiàn)客戶端。在WCF雙向通信中,客戶端也是服務(wù)端,因為它也實現(xiàn)了服務(wù)契約。

來段代碼:

 
 
 
  1. namespace Lin.Contract  
  2. {  
  3. [ServiceContract(CallbackContract=typeof(ICallBack))]  
  4. public interface IHello  
  5. {  
  6. [OperationContract]  
  7. void SayHelloTo(string userName);  
  8. }  
  9. }  
  10. namespace Lin.Contract  
  11. {  
  12. [ServiceContract]  
  13. public interface ICallBack  
  14. {  
  15. [OperationContract]  
  16. void ReceiveTime(DateTime time);  
  17. }  
  18. }  
  19. Service:  
  20. namespace Lin.Service  
  21. {  
  22. [ServiceBehavior(ConcurrencyModeConcurrencyMode = 
    ConcurrencyMode.Reentrant)]  
  23. public class ServiceHello : IHello  
  24. {  
  25. IHello 成員#region IHello 成員  
  26. public void SayHelloTo(string userName)  
  27. {  
  28. Console.WriteLine("Hello {0}", userName);  
  29. OperationContext.Current.GetCallbackChannel()
    .ReceiveTime(DateTime.Now);  
  30. }  
  31. #endregion  
  32. }  
  33. }Host:  
  34. class Program  
  35. {  
  36. static void Main(string[] args)  
  37. {  
  38. using (ServiceHost host = new ServiceHost(typeof(ServiceHello)))  
  39. {  
  40. host.Open();  
  41. Console.Read();  
  42. }  
  43. }  
  44. }Client:  
  45. namespace Lin.Client  
  46. {  
  47. public class ClientCallBack:ICallBack  
  48. {  
  49. ICallBack 成員#region ICallBack 成員  
  50. public void ReceiveTime(DateTime time)  
  51. {  
  52. Console.WriteLine("服務(wù)器收到消息的時間是:{0}", 
    time.ToLongTimeString());  
  53. }  
  54. #endregion  
  55. }  

WCF雙向通信調(diào)用服務(wù):

 
 
 
  1. namespace Lin.Client  
  2. {  
  3. public class ClientHello : DuplexClientBase, IHello  
  4. {  
  5. public ClientHello(InstanceContext instance) : base(instance) { } 

 

IHello 成員#region IHello 成員

 
 
 
  1. public void SayHelloTo(string userName)  
  2. {  
  3. base.Channel.SayHelloTo(userName);  
  4. }  
  5. #endregion  
  6. }  
  7. }  
  8. class Program  
  9. {  
  10. static void Main(string[] args)  
  11. {  
  12. Hello();  
  13. Console.Read();  
  14. }  
  15. static void Hello()  
  16. {  
  17. ClientCallBack callBack = new ClientCallBack();  
  18. ClientHello hello = new ClientHello(new InstanceContext(callBack));  
  19. string commandString = string.Empty;  
  20. while (commandString != "exit")  
  21. {  
  22. commandString = Console.ReadLine();  
  23. hello.SayHelloTo(commandString);  
  24. }  
  25. }  

以上就是我們對WCF雙向通信的相關(guān)介紹。


本文標(biāo)題:WCF雙向通信相關(guān)概念正確理解
標(biāo)題網(wǎng)址:http://www.5511xx.com/article/ccehdop.html