예제 #1
0
        public IInboundTransport GetInboundTransport(Uri uri)
        {
            string            key = uri.ToString().ToLowerInvariant();
            IInboundTransport transport;

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

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

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

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