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
}