Как получить имя очереди, из которой NServiceBus вытащил сообщение

Я могу использовать этот код, чтобы получить обратный адрес.

string returnAddress = Bus.CurrentMessageContext.ReturnAddress;

Но как мне получить «адрес» сообщения. то есть очередь, из которой NServiceBus вытащил сообщение.

Я просмотрел источник, и кажется, что Bus.Transport.Address - это то, что я хочу, но нет доступа к транспорту.

Примечание. Я нахожусь в методе "Handle" обработчика сообщений.


person Simon    schedule 25.05.2010    source источник


Ответы (2)


Это должен быть тот же адрес, который указан в разделе конфигурации MsmqTransport. Вы должны быть в состоянии вытащить этот раздел и получить значение.

String address = Configure.ConfigurationSource.GetConfiguration<MsmqTransportConfig>().InputQueue;
person Adam Fyles    schedule 06.01.2011

Кажется, я просто ввел его, добавив свойство

public ITransport Transport { get; set; }

А затем доступ

Transport.Address

ПРИМЕЧАНИЕ: оказывается, что в последнем источнике нет свойства «Адрес» на ITransport. Так что этот ответ неверный :(

https://nservicebus.svn.sourceforge.net/svnroot/nservicebus/trunk/src/unicastTransport/NServiceBus.Unicast.Transport/ITransport.cs

person Simon    schedule 25.05.2010