自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

WCF服務(wù)實例單一性實現(xiàn)案例解讀

開發(fā) 開發(fā)工具
我們今天將會在這篇文章中通過一個實際案例來為大家詳細介紹一下有關(guān)WCF服務(wù)實例單一性的相關(guān)實現(xiàn)操作,希望對大家有所幫助。

在應(yīng)用WCF這樣一款功能強大的開發(fā)工具的前提下,我們需要熟練的掌握其中的各種應(yīng)用技術(shù)以及功能的了解,這樣才能有助于我們的實際應(yīng)用。在這里我們將會為大家介紹一下WCF服務(wù)實例單一性的實現(xiàn)方法。

了讓讀者對單例實例上下文模式有一個直觀的認識,我們通過一個簡單的案例演示單例模式下WCF服務(wù)實例單一性。這里使用前面章節(jié)使用過的累加器的例子,下面是服務(wù)契約和服務(wù)實現(xiàn)的定義:在初始化時,運算的結(jié)果為零,通過Add方法僅僅對結(jié)果累加,計算的結(jié)果通過GetResult操作返回。在CalculatorService上面,通過System.ServiceModel.ServiceBehaviorAttribute將服務(wù)設(shè)定為單例模式。

  1. using System.ServiceModel;   
  2. namespace Artech.WcfServices.Contracts   
  3. {   
  4. [ServiceContract(Namespace="http://www.artech.com/")]   
  5. public interface ICalculator   
  6. {   
  7. [OperationContract]   
  8. void Add(double x);   
  9. [OperationContract]   
  10. double GetResult();   
  11. }   
  12. }   
  13. using System.ServiceModel;   
  14. using Artech.WcfServices.Contracts;   
  15. namespace Artech.WcfServices.Services   
  16. {   
  17. [ServiceBehavior(InstanceContextModeInstanceContextMode = 
    InstanceContextMode.Single)]   
  18. public class CalculatorService : ICalculator   
  19. {   
  20. private double _result;   
  21. public void Add(double x)   
  22. { 11: this._result += x;   
  23. }   
  24. public double GetResult()   
  25. {   
  26. return this._result;   
  27. }   
  28. }   

在客戶端,通過ChannelFactory<ICalculator>創(chuàng)建兩個服務(wù)代理,模擬兩個不同的客戶端。從最終輸出來看,得到的結(jié)果并不能反映出具體某個客戶端正常的累加運算(對于通過calculator2模擬的客戶端,僅僅調(diào)用了一次Add(3),得到的結(jié)果卻是6)這是所有客戶端一起累加的結(jié)果,這就是WCF服務(wù)實例單一性造成。

  1. using (ChannelFactory<ICalculator> channelFactory = 
    new ChannelFactory<ICalculator>("calculatorservice"))   
  2. {   
  3. ICalculator calculator1 = channelFactory.CreateChannel();   
  4. ICalculator calculator2 = channelFactory.CreateChannel();   
  5. Console.WriteLine("1st serivce proxy:");   
  6. Console.WriteLine("Add(3);");   
  7. calculator1.Add(3);   
  8. Console.WriteLine("The result is {0}.\n", calculator1.GetResult());   
  9. Console.WriteLine("2nd serivce proxy:");   
  10. Console.WriteLine("Add(3);");   
  11. calculator2.Add(3);   
  12. Console.WriteLine("The result is {0}.", calculator2.GetResult());   
  13. }  

輸出結(jié)果:

 

  1. 1st serivce proxy:Add(3);  
  2. The result is 3.   
  3. 2nd serivce proxy:Add(3);  
  4. The result is 6. 

以上就是我們對WCF服務(wù)實例單一性的相關(guān)介紹。

【編輯推薦】

  1. WCF服務(wù)寄宿相關(guān)使用概念詳解
  2. WCF用戶驗證基本實現(xiàn)原理
  3. WCF元數(shù)據(jù)獲取方式技巧分享
  4. WCF通信方式正確配置方式
  5. WCF消息頭基本應(yīng)用技巧講解
責任編輯:曹凱 來源: CSDN
相關(guān)推薦

2010-03-02 10:33:01

Silverlight

2010-03-02 14:06:37

WCF服務(wù)實例管理模式

2009-08-14 17:04:19

Windows后臺服務(wù)

2012-02-14 10:18:11

WCF數(shù)據(jù)服務(wù)

2021-08-06 06:51:14

NacosRibbon服務(wù)

2024-03-27 14:43:07

.NET Core后端監(jiān)控可觀測性

2010-03-01 16:04:31

WCF服務(wù)契約

2009-11-05 16:21:51

WCF服務(wù)

2010-02-26 15:24:27

WCF釋放服務(wù)對象

2009-12-22 10:16:54

WCF服務(wù)狀態(tài)

2009-11-05 16:01:51

WCF單調(diào)服務(wù)

2009-11-05 17:00:34

WCF有序傳遞

2010-02-25 17:04:54

WCF實例上下文

2024-06-11 00:11:00

2009-10-09 17:18:13

RHEL配置NIS

2013-01-16 11:36:41

2010-02-25 17:57:26

WCF服務(wù)合同

2009-12-08 14:28:16

XTemplate +

2009-12-08 18:14:53

WCF Service

2010-03-02 10:41:03

IIS托管WCF服務(wù)
點贊
收藏

51CTO技術(shù)棧公眾號