相信大多数使用过WCF开发工具的朋友们都会运用一个比较直接的方式来进行WCF服务的对象释放。那么,今天我们将要给大家介绍另外一种比较特殊的应用,希望可以增加大家在实际应用中的选择应用。#t#
在营口等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、网站制作 网站设计制作定制设计,公司网站建设,企业网站建设,品牌网站制作,营销型网站建设,外贸营销网站建设,营口网站建设费用合理。
通过设置 OperationBehavior.ReleaseInstanceMode 也能达到控制服务对象释放的目的,一种有四种方式可供选择。
None : 缺省参数,表示不做任何处理。
BeforeCall : 如果在方法调用开始前,Session 中已经有服务实例,则先释放该实例,然后创建新实例完成方法调用。
AfterCall : 调用完方法后,释放当前服务实例。
BeforeAndAfterCall : 调用前释放 Session 中的已有服务实例,然后创建新实例完成调用,结束调用后释放新实例。
测试WCF控制服务对象释放原型
- [ServiceContract(SessionMode = SessionMode.Required)]
- public interface IMyService
- {
- [OperationContract]
- void Test();
- [OperationContract]
- void TestBeforeCall();
- [OperationContract]
- void TestAfterCall();
- [OperationContract]
- void TestBeforeAndAfterCall();
- }
- [ServiceBehavior(InstanceContextMode =
InstanceContextMode.PerSession)]- public class MyServie : IMyService, IDisposable
- {
- public MyServie()
- {
- Console.WriteLine("Constructor");
- }
- [OperationBehavior]
- public void Test()
- {
- }
- [OperationBehavior(ReleaseInstanceModeReleaseInstanceMode=
ReleaseInstanceMode.BeforeCall)]- public void TestBeforeCall()
- {
- Console.WriteLine("TestBeforeCall");
- }
- [OperationBehavior(ReleaseInstanceMode =
ReleaseInstanceMode.AfterCall)]- public void TestAfterCall()
- {
- Console.WriteLine("TestAfterCall");
- }
- [OperationBehavior(ReleaseInstanceMode =
ReleaseInstanceMode.BeforeAndAfterCall)]- public void TestBeforeAndAfterCall()
- {
- Console.WriteLine("TestBeforeAndAfterCall");
- }
- public void Dispose()
- {
- Console.WriteLine("Dispose");
- }
- }
- public class WcfTest
- {
- public static void StartServer()
- {
- AppDomain.CreateDomain("Server").DoCallBack(delegate
- {
- ServiceHost host = new ServiceHost(typeof(MyServie),
new Uri("http://localhost:8080/MyService"));- host.AddServiceEndpoint(typeof(IMyService), new WSHttpBinding(), "");
- host.Open();
- });
- }
- }
以上就是对WCF控制服务对象释放的相关方法的介绍。
当前文章:WCF控制服务对象释放特殊方式介绍
链接URL:http://www.shufengxianlan.com/qtweb/news14/156314.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联