protected override IMessagePublishTopologyConfigurator CreateMessageTopology <T>(Type type)
        {
            var exchangeTypeSelector = new MessageExchangeTypeSelector <T>(ExchangeTypeSelector);

            var messageTopology = new RabbitMqMessagePublishTopology <T>(_messageTopology.GetMessageTopology <T>(), exchangeTypeSelector);

            var connector = new ImplementedMessageTypeConnector <T>(this, messageTopology);

            ImplementedMessageTypeCache <T> .EnumerateImplementedTypes(connector);

            OnMessageTopologyCreated(messageTopology);

            return(messageTopology);
        }
 public ImplementedMessageTypeConnector(IRabbitMqPublishTopologyConfigurator publishTopology,
                                        RabbitMqMessagePublishTopology <TMessage> messagePublishTopologyConfigurator)
 {
     _publishTopology = publishTopology;
     _messagePublishTopologyConfigurator = messagePublishTopologyConfigurator;
 }