public static void ApplyConfiguration(this ConnectionFactory connectionFactory, RabbitConnectionConfig config) { Check.NotNull(connectionFactory, nameof(connectionFactory)); Check.NotNull(config, nameof(config)); connectionFactory .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.AmqpUriSslProtocols, (factory, value) => factory.AmqpUriSslProtocols = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.AutomaticRecoveryEnabled, (factory, value) => factory.AutomaticRecoveryEnabled = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.HostName, (factory, value) => factory.HostName = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.NetworkRecoveryInterval, (factory, value) => factory.NetworkRecoveryInterval = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.HandshakeContinuationTimeout, (factory, value) => factory.HandshakeContinuationTimeout = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.ContinuationTimeout, (factory, value) => factory.ContinuationTimeout = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.Port, (factory, value) => factory.Port = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.RequestedConnectionTimeout, (factory, value) => factory.RequestedConnectionTimeout = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.SocketReadTimeout, (factory, value) => factory.SocketReadTimeout = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.SocketWriteTimeout, (factory, value) => factory.SocketWriteTimeout = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.TopologyRecoveryEnabled, (factory, value) => factory.TopologyRecoveryEnabled = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.ClientProperties, (factory, value) => factory.ClientProperties = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.Password, (factory, value) => factory.Password = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.RequestedChannelMax, (factory, value) => factory.RequestedChannelMax = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.RequestedFrameMax, (factory, value) => factory.RequestedFrameMax = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.RequestedHeartbeat, (factory, value) => factory.RequestedHeartbeat = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.UseBackgroundThreadsForIO, (factory, value) => factory.UseBackgroundThreadsForIO = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.UserName, (factory, value) => factory.UserName = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.VirtualHost, (factory, value) => factory.VirtualHost = value) .ApplyConfigIfNotNull( config, sourceConfig => sourceConfig.ClientProvidedName, (factory, value) => factory.ClientProvidedName = value) .Ssl.ApplyConfiguration(config.Ssl); }