diff --git a/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/RabbitMqExchange.cs b/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/RabbitMqExchange.cs index 56013ed1f..7b2f99e6a 100644 --- a/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/RabbitMqExchange.cs +++ b/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/RabbitMqExchange.cs @@ -43,6 +43,8 @@ public override bool AutoStartSendingAgent() return base.AutoStartSendingAgent() || ExchangeType == ExchangeType.Topic; } + public bool DisableAutoProvision { get; set; } + public bool HasDeclared { get; private set; } public string DeclaredName { get; } @@ -72,7 +74,7 @@ public override async ValueTask InitializeAsync(ILogger logger) return; } - if (_parent.AutoProvision) + if (_parent.AutoProvision && !DisableAutoProvision) { await _parent.WithAdminChannelAsync(model => DeclareAsync(model, logger)); } @@ -92,7 +94,7 @@ internal override string RoutingKey() internal async Task DeclareAsync(IChannel channel, ILogger logger) { - if (DeclaredName == string.Empty) + if (HasDeclared || DeclaredName == string.Empty) { return; }