博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WCF 回调及重入
阅读量:6909 次
发布时间:2019-06-27

本文共 1235 字,大约阅读时间需要 4 分钟。

服务端类代码

服务契约:

[ServiceContract(CallbackContract=typeof(IserviceCallBack))]    public interface IService1    {        [OperationContract]        string GetData(int value);    }    public interface IserviceCallBack    {        [OperationContract]        string GetClientData();    }

 

服务实例:

[ServiceBehavior(ConcurrencyMode=ConcurrencyMode.Reentrant)]    public class Service1 : IService1    {        public string GetData(int value)        {            IserviceCallBack callback = OperationContext.Current.GetCallbackChannel
(); string value1= callback.GetClientData(); return string.Format("You entered: {0} and CallValue is {1}", value,value1); } }

由于在方法中调用客户端的结果,所以使用重入

客户端代码

class CallBack : IService1Callback    {        public string GetClientData()        {            return "test callback value";        }    }    class Program    {        static void Main(string[] args)        {            Service1Client client = new Service1Client(new InstanceContext(new CallBack()));            Console.Write(client.GetData(1));            Console.Read();        }     }

结果是:You entered: 1 and CallValue is test callback value

 

转载于:https://www.cnblogs.com/FlyCat/archive/2012/04/30/2579980.html

你可能感兴趣的文章
Custom Accessories
查看>>
【转】xcode APP 打包以及提交apple审核详细流程(新版本更新提交审核)
查看>>
DirectX 3D 之C#开发
查看>>
隐藏nginx 版本号信息(转)
查看>>
转:Java中的Clone()方法详解
查看>>
【CloudFoundry】架构、设计参考
查看>>
c++字符串变量---8
查看>>
MYSQL使用中字符编码一坑
查看>>
hibernate的注解属性mappedBy详解
查看>>
A basic Windows service in C++ (CppWindowsService)
查看>>
Linux环境变量设置指南
查看>>
bootstrap
查看>>
EasyUI的DataGrid 打印导出
查看>>
转:Delphi的类与继承(VB与delphi比较)
查看>>
数字正则表达式,数字校验表达式,最正确的数字校验正则表达式
查看>>
第一百零三节,JavaScript对象和数组
查看>>
[转载]Eclipse提示No java virtual machine
查看>>
QuartZ Cron表达式
查看>>
线程池学习笔记
查看>>
MHA环境的搭建
查看>>