Пример #1
0
        public ISendingAgent GetOrBuildSendingAgent(Uri address)
        {
            if (address == null)
            {
                throw new ArgumentNullException(nameof(address));
            }

            if (_senders.TryFind(address, out var agent))
            {
                return(agent);
            }

            lock (_channelLock)
            {
                return(!_senders.TryFind(address, out agent)
                    ? buildSendingAgent(address)
                    : agent);
            }
        }
Пример #2
0
        public ISendingAgent AgentForLocalQueue(string queueName)
        {
            queueName = queueName ?? TransportConstants.Default;
            if (_localSenders.TryFind(queueName, out var agent))
            {
                return(agent);
            }

            agent         = GetOrBuildSendingAgent($"local://{queueName}".ToUri());
            _localSenders = _localSenders.AddOrUpdate(queueName, agent);

            return(agent);
        }