WCF代码片断

publicstaticclass DataManager
    {
        #region 私有变量staticstring uri ="localhost:12345";
        static IServer channel;
        #endregion#region 属性publicstaticstring URI
        {
            get { return uri; }
            set
            {
                uri = value;
                channel =null;
            }
        }

        publicstatic IServer Channel
        {
            get
            {
                if (channel ==null)
                {
                    ICollection<BindingElement> bindingElements =new List<BindingElement>();
                    TcpTransportBindingElement tcpTransport =new TcpTransportBindingElement() { TransferMode = TransferMode.Streamed, MaxReceivedMessageSize =2147483647 }; ;
                    GZipMessageEncodingBindingElement compBindingElement =new GZipMessageEncodingBindingElement(new BinaryMessageEncodingBindingElement());
                    bindingElements.Add(compBindingElement);
                    bindingElements.Add(tcpTransport);
                    CustomBinding binding =new CustomBinding(bindingElements);
                    binding.Name ="tcpTransport";
                    EndpointAddress address =new EndpointAddress(new Uri("net.tcp://"+ uri +"/Server/"));
                    ChannelFactory<IServer> channelFactory =new ChannelFactory<IServer>(binding, address);
                    channelFactory.Endpoint.Behaviors.Add(new ContextHeaderBehavior());
                    channel = channelFactory.CreateChannel();
                }
                return channel;
            }
        }
        #endregion
    }
posted on 2012-05-02 08:45  武胜-阿伟  阅读(195)  评论(0编辑  收藏  举报