Пример #1
0
        private ISendingAgent buildSendingAgent(Uri uri)
        {
            var transport = _transports.TransportForScheme(uri.Scheme);

            if (transport == null)
            {
                throw new InvalidOperationException($"There is no known transport type that can send to the Destination {uri}");
            }

            if (uri.Scheme == TransportConstants.Local)
            {
                var local = (LocalTransport)transport;
                var agent = local.AddSenderForDestination(uri, _root, this);

                AddSendingAgent(agent);

                return(agent);
            }
            else
            {
                var endpoint = transport.GetOrCreateEndpoint(uri);
                return(endpoint.StartSending(_root, _root.Runtime, transport.ReplyEndpoint()?.ReplyUri()));
            }
        }