2016-11-17 2 views
1

Интерфейс ISpecifyMessageHandlerOrdering устарел в NServiceBus 6.x.Указать порядок обработки сообщений в NServiceBus 6.x

Документация сообщает, чтобы указать порядок, вызвав метод ExecuteTheseHandlersFirst для конечной точкиконфигурации.

Я модернизирую NSB от 5.x до 6.x. В решении у меня есть endpointConfiguration в одной основной библиотеке и много обработчиков в других библиотеках. Есть ли способ указать упорядочение обработчика в этих других библиотеках (способ 5.x)?

+0

Итак, вы только выполняете частичное обновление? –

+0

Нет. Полное решение - включая проекты основного проекта и обработчика. – pmarek

+0

Так вы спрашиваете, будет ли он работать, если он указан устаревшим способом? –

ответ

2

Если я правильно понять вас, ваша проблема исходит из того, что ISpecifyMessageHandlerOrdering реализации может быть размещена в любом месте и быть подобранна сборочным сканированием, где EndpointConfiguration находится в заранее определенном месте, и не где ваши обработчики находятся. Верный?

Если это так, я думаю, что интерфейс INeedInitialization будет подходящей точкой расширения для вас. Он дает вам доступ к EndpointConfiguration и подбирается с помощью сборочного сканирования.

В качестве альтернативы, существует проект сообщества под названием NServiceBus.HandlerOrdering, который позволяет более четко выражать упорядочивания обработчиков прямо на обработчике, добавляя такие интерфейсы, как IWantToRunAfter<OtherHandler>. Вот sample showing how that project works.

+0

Это то, что я искал. Спасибо! – pmarek