如何在 EasyNetQ 中获取现有的 Exchange 或队列?

Eho*_*ret 5 c# rabbitmq easynetq .net-core

我正在使用 EasyNetQ,我想知道如何在不事先订阅的情况下获取现有IExchangeIQueue

IAdvanceBus我只能看到:

  • ExchangeDeclareAsync
  • QueueDeclareAsync

但我不确定这些是否会覆盖现有队列或具有相同名称的交换?

另外,在尝试获取/声明队列或交换器之前,我如何确定该队列或交换器存在?

Joh*_*ohn 1

如果您在 RabbitMQ 中激活了管理插件,则可以使用 EasyNetQ 的客户端来管理 API。文档

例如:

var queues = managementClient.GetQueues();

foreach (Queue queue in queues)
{
    Console.Out.WriteLine("queue.Name = {0}", queue.Name);
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您重新声明队列或交换器,则不会覆盖它。什么都没发生。