本篇内容介绍了“WCF服务如何操作SayHello()”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
这里我们分别定义了三种激活类型的服务类:单调服务(Per-CallService),会话服务(SessionfulService),单例服务(SingletonService),托管宿主分别进行托管,这里为了测试,我们使用的绑定协议也是TCP方式,其他的协议这里没做具体的实现,有兴趣的朋友可以自己扩展修改代码,进行测试。
WCF服务支持三种实例激活的类型:单调服务(Per-Call Service):每次的客户端请求分配一个新的服务实例。类似于Net Remoting的SingleCall模式;会话服务(Sessionful Service):则为每次客户端连接分配一个服务实例。类似于Net Remoting的客户端激活模式;单例服务(Singleton Service):所有的客户端会为所有的连接和激活对象共享一个相同的服务实例。类似于Net Remoting的SingleTon模式。
WCF服务:定义了一个服务契约,一个操作SayHello(),具体的WCF服务类型定义和激活类型配置如下:
//此例定义了一个服务契约,三种服务分别为单调服务、会话服务、单例服务或单件服务 namespaceWCFService { //1.服务契约 [ServiceContract(SessionModeSessionMode=SessionMode.Allowed,Namespace="http://www.cnblogs.com/frank_xl/")] publicinterfaceIWCFService { //操作契约 [OperationContract] voidSayHello(); } //2.服务类.单调服务 [ServiceBehavior(InstanceContextModeInstanceContextMode=InstanceContextMode.PerCall)] publicclassWCFServicePerCall:IWCFService,IDisposable { //服务实例计数 privateintmCcount=0; //构造函数 publicWCFServicePerCall() { Console.WriteLine("WCFServicePerCallInstanceisCreated"); } //实现接口定义的方法 publicvoidSayHello() { mCcount++; Console.WriteLine("WCFServicePerCallInstanceCountis:{0}",mCcount); } //实现接口定义的方法Dispose publicvoidDispose() { Console.WriteLine("WCFServicePerCallInstanceisdisposed"); } } //3.服务类.会话服务 [ServiceBehavior(InstanceContextModeInstanceContextMode=InstanceContextMode.PerSession)] publicclassWCFServicePerSession:IWCFService { //服务实例计数 privateintmCcount=0; //构造函数 publicWCFServicePerSession() { Console.WriteLine("WCFServicePerSessionInstanceisCreated"); } //实现接口定义的方法 publicvoidSayHello() { mCcount++; Console.WriteLine("WCFServicePerSessionInstanceCountis:{0}",mCcount); } //实现接口定义的方法Dispose publicvoidDispose() { Console.WriteLine("WCFServicePerSessionInstanceisdisposed"); } } //4.服务类.单例服务 [ServiceBehavior(InstanceContextModeInstanceContextMode=InstanceContextMode.Single)] publicclassWCFServiceSingleTon:IWCFService { //服务实例计数 privateintmCcount=0; //构造函数 publicWCFServiceSingleTon() { Console.WriteLine("WCFServiceSingleTonInstanceisCreated"); } //实现接口定义的方法 publicvoidSayHello() { mCcount++; Console.WriteLine("WCFServiceSingleTonInstanceCountis:{0}",mCcount); } //实现接口定义的方法Dispose publicvoidDispose() { Console.WriteLine("WCFServiceSingleTonInstanceisdisposed"); } } }
“WCF服务如何操作SayHello()”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。