public async Task SendAsync <TMessage>(TMessage message) where TMessage : IBusQueueMessage { if (string.IsNullOrEmpty(message.QueueName)) { throw new ApplicationException("Queue name is mandatory"); } var channel = new ConnectionFactory { Uri = new Uri(_connectionString) } .CreateConnection() .CreateModel(); RabbitmqResourceManager .EnlistToTransaction(channel, Transaction.Current); var body = _messageFactory.CreateMessage(message); channel.BasicPublish( exchange: string.Empty, routingKey: message.QueueName, basicProperties: null, body: body); }