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

时间:2019-05-14 09:16:33

标签: c# .net-core rabbitmq easynetq

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

IAdvanceBus中,我只能看到:

  • ExchangeDeclareAsync
  • QueueDeclareAsync

但是我真的不确定它们是否会覆盖现有队列或使用相同名称进行交换?

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

1 个答案:

答案 0 :(得分:0)

如果您在RabbitMQ中激活了管理插件,则可以将EasyNetQ的客户端用于管理API。 Documentation

例如:

var queues = managementClient.GetQueues();

foreach (Queue queue in queues)
{
    Console.Out.WriteLine("queue.Name = {0}", queue.Name);
}

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