/// <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);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }