成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WCF雙向通信實現服務契約

開發 開發工具
WCF雙向通信首先需要定義服務契約。對于WCF雙向通信來說,客戶端其實也是服務端。因為它能夠幫助我們實現服務契約。

WCF框架的出現,為我們解決了許多以前不能實現功能。那么對于WCF雙向通信的具體含義又有多少人真正了解呢。在這里我們就來初步的探討下WCF雙向通信。#t#

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

首先要做的是就是定義服務契約。定義契約一般使用接口,使得實現和消費這個服務的雙方都要按照這個契約來實現相應的接口。在雙向通信中至少要定義兩個服務,一個服務是供消費程序消費的,另一個則是在callBack的時候調用的服務,這個服務應該由消費程序實現。

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

***,實現客戶端。在WCF雙向通信中,客戶端也是服務端,因為它也實現了服務契約。

  1. Contract:  
  2. namespace Lin.Contract  
  3. {  
  4. [ServiceContract(CallbackContract=
    typeof(ICallBack))]  
  5. public interface IHello  
  6. {  
  7. [OperationContract]  
  8. void SayHelloTo(string userName);  
  9. }  
  10. }  
  11. namespace Lin.Contract  
  12. {  
  13. [ServiceContract]  
  14. public interface ICallBack  
  15. {  
  16. [OperationContract]  
  17. void ReceiveTime(DateTime time);  
  18. }  
  19. }  
  20. Service:  
  21. namespace Lin.Service  
  22. {  
  23. [ServiceBehavior(ConcurrencyMode
    ConcurrencyMode = ConcurrencyMode
    .Reentrant)]  
  24. public class ServiceHello : IHello  
  25. {  
  26. IHello 成員#region IHello 成員  
  27. public void SayHelloTo(string userName)  
  28. {  
  29. Console.WriteLine("Hello {0}", userName);  
  30. OperationContext.Current.GetCallbackChannel
    <ICallBack>().ReceiveTime(DateTime.Now);  
  31. }  
  32. #endregion  
  33. }  
  34. }Host:  
  35. class Program  
  36. {  
  37. static void Main(string[] args)  
  38. {  
  39. using (ServiceHost host = 
    new ServiceHost(typeof(ServiceHello)))  
  40. {  
  41. host.Open();  
  42. Console.Read();  
  43. }  
  44. }  
  45. }Client:  
  46. namespace Lin.Client  
  47. {  
  48. public class ClientCallBack:ICallBack  
  49. {  
  50. ICallBack 成員#region ICallBack 成員  
  51. public void ReceiveTime(DateTime time)  
  52. {  
  53. Console.WriteLine("服務器收到消息的時間是
    :{0}", time.ToLongTimeString());  
  54. }  
  55. #endregion  
  56. }  
  57. }  
  58. 調用服務:  
  59. namespace Lin.Client  
  60. {  
  61. public class ClientHello : 
    DuplexClientBase
    <IHello>, IHello  
  62. {  
  63. public ClientHello(InstanceContext 
    instance) : base(instance) { }  
  64. IHello 成員#region IHello 成員  
  65. public void SayHelloTo(string userName)  
  66. {  
  67. base.Channel.SayHelloTo(userName);  
  68. }  
  69. #endregion  
  70. }  
  71. }  
  72. class Program  
  73. {  
  74. static void Main(string[] args)  
  75. {  
  76. Hello();  
  77. Console.Read();  
  78. }  
  79. static void Hello()  
  80. {  
  81. ClientCallBack callBack = 
    new ClientCallBack();  
  82. ClientHello hello = 
    new ClientHello(new 
    InstanceContext(callBack));  
  83. string commandString = string.Empty;  
  84. while (commandString != "exit")  
  85. {  
  86. commandString = Console.ReadLine();  
  87. hello.SayHelloTo(commandString);  
  88. }  
  89. }  

如同OO的出現一樣,有些人是注重OO的思想,有些人注重OO的實現。同樣的,WCF雙向通信應該更多的是提倡一種面向服務架構的思想。SOA如何實現,這個不重要,每個平臺都有自己的實現方式。這也體現了技術要服務于社會。

責任編輯:曹凱 來源: 博客園
相關推薦

2009-12-08 11:17:41

WCF雙向通信

2010-02-23 17:55:24

WCF雙向通信

2023-10-17 17:13:14

內存程序源碼

2010-02-24 16:58:14

WCF Session

2010-02-22 13:56:35

WCF服務契約

2010-03-01 16:04:31

WCF服務契約

2010-02-22 15:27:05

WCF數據契約

2009-11-09 09:23:10

WCF數據契約

2021-08-11 14:31:52

鴻蒙HarmonyOS應用

2017-03-28 10:20:24

Docker通信分析

2011-08-31 13:22:37

PhoneGapAndroidjavascript

2009-11-06 15:02:47

WCF契約查詢

2009-12-22 11:29:27

WCF自定義集合類型

2009-11-09 14:46:09

WCF集合契約等價

2010-02-23 13:46:37

WCF數據契約

2009-11-05 16:27:51

WCF數據契約

2009-12-21 10:00:46

WCF基礎開發

2023-08-01 08:43:29

Python多線程

2009-12-21 14:05:18

WCF契約

2010-02-23 13:54:43

WCF非定制數據契約集
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国精产品一区一区三区免费完 | 请别相信他免费喜剧电影在线观看 | 欧美xxxx性 | 狠狠综合久久av一区二区小说 | 欧美国产精品一区二区三区 | 羞羞的视频在线 | 欧美日韩久久 | 伊人久久在线 | 国产美女精品 | 99免费视频 | 国产激情一区二区三区 | 亚洲一区二区三区在线播放 | 午夜视频在线观看网站 | 久久精品国产99国产精品 | 毛片在线免费播放 | 欧美日韩中文字幕在线 | 国产成人免费 | 久久国产精品免费一区二区三区 | 黑人精品欧美一区二区蜜桃 | 色眯眯视频在线观看 | 欧美不卡一区二区三区 | 日韩中文字幕一区二区 | 一级毛片视频 | 日本不卡免费新一二三区 | 一区二区国产在线观看 | 成人精品一区二区三区 | 中文字幕1区 | 精品美女视频在线观看免费软件 | 免费激情| 国产精品不卡视频 | 国产乱码精品一区二区三区五月婷 | 中文字幕一区二区三区不卡在线 | 国产亚洲精品久久久久久牛牛 | 国产精品国产精品 | 毛片在线免费 | 国产免费一区二区三区 | 成人免费高清 | 日韩有码在线观看 | 色综合久 | 精品一区二区三区91 | 91精品综合久久久久久五月天 |