WCF实例停用基本应用技巧分享

开发 开发工具
WCF实例停用一般情况只会针对会话服务来进行操作的。而其在单例服务中的应用时无效的。我们将会在这里对此进行一个详细的介绍。

WCF中有很多比较高深的应用技巧是值得我们在学习和实践的过程中去深入研究的。那么,今天我们就先从WCF实例停用开始了解,从而使我们对这一开发工具有一个更加深入的了解程度。#t#

WCF实例停用只针对会话服务而言。单例服务虽然也可以应用,但却无效。

“会话实际要做的不仅是关联客户端消息,同时还要关联托管了服务的上下文。启动会话时,宿主会创建一个新的上下文。会话终止时,上下文也随之而终止。默认情况下,上下文的生命周期与发布的服务实例的生命周期相同。然而,出于优化的目的,WCF为服务设计者提供了一个分离两种生命周期的选项,该选项允许WCF独立地停用实例,而不必依赖于它的上下文。实际上,WCF还允许不包含实例的上下文存在。”

 

这种实例管理技术称为上下文停用(Context Deactivation)。控制上下文停用的最常见办法是通过OperationBehavior特性的ReleaseInstanceMode属性:

 

  1. public enum ReleaseInstanceMode   
  2. {   
  3. None, BeforeCall, AfterCall, BeforeAndAfterCall,   
  4. }   
  5. [AttributeUsage(AttributeTargets.Method)]   
  6. public sealed class OperationBehaviorAttribute : Attribute,...   
  7. {   
  8. public ReleaseInstanceMode ReleaseInstanceMode   
  9. {  
  10. get;set;  
  11. }  
  12.  //More members   
  13. }  

 

“通常,我们只需要将WCF实例停用应用到部分服务方法上,而不是全部方法;或者为不同的方法设置不同的值。”例如:

  1. class MyService : IMyContract,IDisposable   
  2. {   
  3. [OperationBehavior(ReleaseInstanceModeReleaseInstanceMode = 
    ReleaseInstanceMode.AfterCall)]   
  4. public void MyMethod( )   
  5. {  
  6. ...  
  7. }   
  8. public void MyOtherMethod( )   
  9. {  
  10. ...  
  11. }   
  12. public void Dispose( )   
  13. {  
  14. ...  
  15. }   
  16. }  

以上就是对WCF实例停用的相关内容的介绍。

责任编辑:曹凯 来源: IT168
相关推荐

2010-02-25 18:04:02

WCF IIS宿主

2010-03-01 09:48:23

WCF会话服务

2010-02-25 10:52:29

WCF响应服务

2010-03-01 16:04:31

WCF服务契约

2010-02-26 13:40:28

WCF消息头

2010-03-01 18:11:40

WCF数据契约变更

2010-02-06 16:16:01

C++冒泡排序

2010-02-23 15:58:57

WCF Session

2010-03-01 11:24:31

WCF面向服务

2010-03-01 13:06:49

WCF继承

2010-01-21 18:26:16

VB.NET拆分合并语

2010-02-22 17:21:02

WCF消息交换

2010-02-22 15:20:54

WCF WS-Disc

2010-02-25 15:25:19

WCF通道

2013-12-12 16:10:21

Lua脚本语言

2010-02-23 13:03:34

WCF序列化

2010-02-26 10:46:12

WCF行为扩展

2010-03-02 10:50:57

WCF元数据交换

2010-02-25 16:45:13

WCF应用技巧

2010-02-24 17:07:26

WCF序列化引擎
点赞
收藏

51CTO技术栈公众号