ISendTransport GetSendTransport(Uri address) { var host = _busConfiguration.GetHost(address); var settings = host.Topology.SendTopology.GetSendSettings(address); IAgent <SendEndpointContext> source = GetSendEndpointContextSource(host, settings, settings.GetBrokerTopology()); var transport = new ServiceBusSendTransport(source, address); host.Add(transport); return(transport); }
ISendTransport GetSendTransport <T>(Uri address) where T : class { var host = _busConfiguration.GetHost(address); var settings = _publishTopology.GetMessageTopology <T>().GetSendSettings(); IAgent <SendEndpointContext> source = GetSendEndpointContextSource(host, settings, settings.GetBrokerTopology()); var transport = new ServiceBusSendTransport(source, address); host.Add(transport); return(transport); }
public Task <ISendEndpoint> GetSendEndpoint(Uri address) { return(_host.RetryPolicy.Retry <ISendEndpoint>(async() => { var topicDescription = await _host.RootNamespaceManager.CreateTopicSafeAsync(address.GetTopicDescription()).ConfigureAwait(false); var messagingFactory = await _host.MessagingFactory.ConfigureAwait(false); var topicClient = messagingFactory.CreateTopicClient(topicDescription.Path); var client = new TopicSendClient(topicClient); var sendTransport = new ServiceBusSendTransport(client, _host.Supervisor); sendTransport.ConnectSendObserver(_sendObservable); return new SendEndpoint(sendTransport, _serializer, address, _sourceAddress, SendPipe.Empty); })); }