Create internal exchange

Использую Nuget-пакет RabbitMQ.Client версии 6.2.2

Мне требуется подключится к amq.rabbitmq.event, созданному Event Exchange Plugin. Не смог найти программного функционала для подключения с параметром internal = true.

Метод IModel.ExchangeDeclare не имеет перегрузок с параметром internal. Пробовал передать параметр с помощью arguments (это разные варианты, какие пробовал, думал вдруг там точная проверка на соответсвие текста имени настройки):

arguments = new Dictionary<string, object> { {"internal", true} };
arguments = new Dictionary<string, object> { {"internal", "true"} };
arguments = new Dictionary<string, object> { {"Internal", true} };
arguments = new Dictionary<string, object> { {"Internal", "true"} };

Однако все варианты создают Exchange именно с arguments, а мне нужен параметр internal. Который есть, как мне удалось найти, в языке Go, и видно в интерфейсе в браузере (из соответствующего плагина)


Ответы (1 шт):

Автор решения: Dejsving

Как выяснилось в итоге по каким то причинам Nuget пакет RabbitMQ.Client не содержит методов для управления параметром Internal, в отличии от например языка Go, у которого такая перегрузка имеется.

Исходная цель была не колхозить с подключениями и сделать новое подключения в рамках ООП. Однако в связи с этой особенностью пришлось ставить проверку на наличие в конфиге этого параметра и пропускать вызов ExchangeDeclare при соответствующим флаге.

Видимо я неправильно понял принцип RabbitMQ, т.к. к Exchange в данном случае мне подключаться не надо, его создаст и с ним работает сам RabbitMQ (плагин, если точнее).

Осталось только недоумение зачем такая возможность другим языкам.

→ Ссылка