netTcpBinding三种方法实现调用函数

     之前花了很长时候来研究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

posted @ 2013-02-25 09:16  黑 瞳  阅读(1600)  评论(5编辑  收藏  举报