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); } }