Task <ISendEndpoint> CreateSendEndpoint(Type messageType) { SendSettings sendSettings = _host.GetSendSettings(messageType); ExchangeBindingSettings[] bindings = TypeMetadataCache.GetMessageTypes(messageType) .SelectMany(type => type.GetExchangeBindings(_host.MessageNameFormatter)) .Where(binding => !sendSettings.ExchangeName.Equals(binding.Exchange.ExchangeName)) .ToArray(); Uri destinationAddress = _host.Settings.GetSendAddress(sendSettings); var modelCache = new RabbitMqModelCache(_host.ConnectionCache); var sendTransport = new RabbitMqSendTransport(modelCache, sendSettings, bindings); return(Task.FromResult <ISendEndpoint>(new SendEndpoint(sendTransport, _serializer, destinationAddress, _sourceAddress, SendPipe.Empty))); }
Task <ISendEndpoint> CreateSendEndpoint(Type messageType) { if (!TypeMetadataCache.IsValidMessageType(messageType)) { throw new MessageException(messageType, "Anonymous types are not valid message types"); } var sendSettings = _host.Settings.GetSendSettings(messageType); ExchangeBindingSettings[] bindings = TypeMetadataCache.GetMessageTypes(messageType) .SelectMany(type => type.GetExchangeBindings(_host.Settings.MessageNameFormatter)) .Where(binding => !sendSettings.ExchangeName.Equals(binding.Exchange.ExchangeName)) .ToArray(); var destinationAddress = _host.Settings.GetSendAddress(sendSettings); var modelCache = new RabbitMqModelCache(_host.ConnectionCache, _host.Supervisor, _modelSettings); var sendTransport = new RabbitMqSendTransport(modelCache, sendSettings, bindings); return(Task.FromResult <ISendEndpoint>(new SendEndpoint(sendTransport, _serializer, destinationAddress, _sourceAddress, SendPipe.Empty))); }