WCF控制服务对象释放特殊方式介绍

相信大多数使用过WCF开发工具的朋友们都会运用一个比较直接的方式来进行WCF服务的对象释放。那么,今天我们将要给大家介绍另外一种比较特殊的应用,希望可以增加大家在实际应用中的选择应用。#t#

在营口等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、网站制作 网站设计制作定制设计,公司网站建设,企业网站建设,品牌网站制作,营销型网站建设,外贸营销网站建设,营口网站建设费用合理。

通过设置 OperationBehavior.ReleaseInstanceMode 也能达到控制服务对象释放的目的,一种有四种方式可供选择。

None : 缺省参数,表示不做任何处理。

BeforeCall : 如果在方法调用开始前,Session 中已经有服务实例,则先释放该实例,然后创建新实例完成方法调用。

AfterCall : 调用完方法后,释放当前服务实例。

BeforeAndAfterCall : 调用前释放 Session 中的已有服务实例,然后创建新实例完成调用,结束调用后释放新实例。

测试WCF控制服务对象释放原型

 
 
 
  1. [ServiceContract(SessionMode = SessionMode.Required)]  
  2. public interface IMyService  
  3. {  
  4. [OperationContract]  
  5. void Test();  
  6. [OperationContract]  
  7. void TestBeforeCall();  
  8. [OperationContract]  
  9. void TestAfterCall();  
  10. [OperationContract]  
  11. void TestBeforeAndAfterCall();  
  12. }  
  13. [ServiceBehavior(InstanceContextMode = 
    InstanceContextMode.PerSession)]  
  14. public class MyServie : IMyService, IDisposable  
  15. {  
  16. public MyServie()  
  17. {  
  18. Console.WriteLine("Constructor");  
  19. }  
  20. [OperationBehavior]  
  21. public void Test()  
  22. {   
  23. }  
  24. [OperationBehavior(ReleaseInstanceModeReleaseInstanceMode=
    ReleaseInstanceMode.BeforeCall)]  
  25. public void TestBeforeCall()  
  26. {  
  27. Console.WriteLine("TestBeforeCall");  
  28. }  
  29. [OperationBehavior(ReleaseInstanceMode = 
    ReleaseInstanceMode.AfterCall)]  
  30. public void TestAfterCall()  
  31. {  
  32. Console.WriteLine("TestAfterCall");  
  33. }  
  34. [OperationBehavior(ReleaseInstanceMode = 
    ReleaseInstanceMode.BeforeAndAfterCall)]  
  35. public void TestBeforeAndAfterCall()  
  36. {  
  37. Console.WriteLine("TestBeforeAndAfterCall");  
  38. }  
  39. public void Dispose()  
  40. {  
  41. Console.WriteLine("Dispose");  
  42. }  
  43. }  
  44. public class WcfTest  
  45. {  
  46. public static void StartServer()  
  47. {  
  48. AppDomain.CreateDomain("Server").DoCallBack(delegate  
  49. {  
  50. ServiceHost host = new ServiceHost(typeof(MyServie), 
    new Uri("http://localhost:8080/MyService"));  
  51. host.AddServiceEndpoint(typeof(IMyService), new WSHttpBinding(), "");  
  52. host.Open();  
  53. });  
  54. }  

以上就是对WCF控制服务对象释放的相关方法的介绍。

当前文章:WCF控制服务对象释放特殊方式介绍
链接URL:http://www.shufengxianlan.com/qtweb/news14/156314.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联