예제 #1
0
        public IOutboundTransport GetOutboundTransport(Uri uri)
        {
            string key = uri.ToString().ToLowerInvariant();

            IOutboundTransport transport;

            if (_outboundTransports.TryGetValue(key, out transport))
            {
                return(transport);
            }

            try
            {
                ITransportSettings settings = new TransportSettings(new EndpointAddress(uri));
                transport = _transportFactory.BuildOutbound(settings);

                _outboundTransports.TryAdd(uri.ToString().ToLowerInvariant(), transport);

                return(transport);
            }
            catch (Exception ex)
            {
                throw new TransportException(uri, "Failed to create outbound transport", ex);
            }
        }