/// <summary> /// 双向代理通道 /// </summary> /// <param name="context">客户端实例上下文</param> /// <param name="endpoint">服务通道终结点</param> /// <param name="messageHeader">定制的消息头</param> public ProxyDuplexChannel(InstanceContext context, ServiceEndpoint endpoint, CustomizedMessageHeaderData messageHeader) : base(context, endpoint.Binding, endpoint.Address) { if (endpoint == null) { throw new ArgumentNullException("endpoint"); } MessageFixer.Fix(ChannelFactory, endpoint, messageHeader); }
/// <summary> /// 单向代理通道 /// </summary> /// <param name="binding">终结点绑定方式</param> /// <param name="remoteAddress">远端终结点地址</param> /// <param name="messageHeader">定制的消息头</param> public ProxyChannel(Binding binding, EndpointAddress remoteAddress, CustomizedMessageHeaderData messageHeader) : base(binding, remoteAddress) { if (remoteAddress == null) { throw new ArgumentNullException("remoteAddress"); } MessageFixer.Fix(ChannelFactory, messageHeader); }
private static IProxyChannel <TContractType> CreateProxyDuplexChannel <TContractType>(InstanceContext context, CustomizedMessageHeaderData pHeaderData, string hostName) where TContractType : class { ServiceEndpoint endpoint = EndpointProvider.GetEndpoint <TContractType>(hostName); IProxyChannel <TContractType> factory = new ProxyDuplexChannel <TContractType>(context, endpoint, pHeaderData); return(factory); }
private static IProxyChannel <TContractType> CreateProxyChannel <TContractType>(CustomizedMessageHeaderData pHeaderData, string hostName) where TContractType : class { ServiceEndpoint endpoint = EndpointProvider.GetEndpoint <TContractType>(hostName); IProxyChannel <TContractType> channel = new ProxyChannel <TContractType>(endpoint, pHeaderData); return(channel); }