public void Publish <T>(Action <IInMemoryMessagePublishTopologyConfigurator <T> > configureTopology)
            where T : class
        {
            IInMemoryMessagePublishTopologyConfigurator <T> configurator = _busConfiguration.Topology.Publish.GetMessageTopology <T>();

            configureTopology?.Invoke(configurator);
        }
        public void AddImplementedMessageConfigurator <T>(IInMemoryMessagePublishTopologyConfigurator <T> configurator, bool direct)
            where T : class
        {
            var adapter = new TypeAdapter <T>(configurator, direct);

            _implementedMessageTypes.Add(adapter);
        }
            public void ImplementsMessageType <T>(bool direct)
                where T : class
            {
                IInMemoryMessagePublishTopologyConfigurator <T> messageTopology = _publishTopology.GetMessageTopology <T>();

                _messagePublishTopologyConfigurator.AddImplementedMessageConfigurator(messageTopology, direct);
            }
        public Task <ISendTransport> GetPublishTransport <T>(Uri publishAddress)
            where T : class
        {
            IInMemoryMessagePublishTopologyConfigurator <T> publishTopology = _topologyConfiguration.Publish.GetMessageTopology <T>();

            ApplyTopologyToMessageFabric(publishTopology);

            return(GetSendTransport(publishAddress));
        }
 public TypeAdapter(IInMemoryMessagePublishTopologyConfigurator <T> configurator, bool direct)
 {
     _configurator = configurator;
     _direct       = direct;
 }