之前花了很长时候来研究WCF,并实现了netTcpBinding三种方法实现调用函数,也许有人用得着,所以分享出来。
主要代码如下。
static void Main(string[] args) { ICalculator2 menuProxy = CrateProxy<ICalculator2>("calculatorservice2"); //方法一,使用泛型,方便实用,可扩展性强,缺点,木有回调了 var r = menuProxy.Subtraction(120, 5); Console.WriteLine("x-y={0}", r); InstanceContext instanceContext = new InstanceContext(new CalculatorCallbackService()); using (DuplexChannelFactory<ICalculator> channelFactory = new DuplexChannelFactory<ICalculator>(instanceContext, "calculatorservice")) { ICalculator proxy = channelFactory.CreateChannel(); using (proxy as IDisposable) { proxy.Add(1, 2);//方法二,有回调 var result = proxy.Subtraction(100, 1);//方法三,使用using,不使用回调 Console.WriteLine("x-y={0}", result); Console.Read(); } } }
Demo调试方法,先启动ServiceHosting,再启动Client。
调试后截图如下:
对这个示例感兴趣,请下载Demo