2016-12-20 8 views
1

Есть ли способ на Rebus выполнения действия перед IHandleMessages.Handle называется?Rebus - Выполнение действия перед сообщением обрабатывается

Particulary Я хочу установить идентификатор корреляции для своих журналов для log4net, и у меня действительно трудные времена, чтобы заставить это работать.

У меня есть конвертер шаблон деятельности, чтобы получить Guid от

System.Diagnostics.Trace.CorrelationManager.ActivityId = Guid.NewGuid()

Но я хочу, чтобы иметь возможность установить это перед каждой ручки активируется. Я использую Autofac в качестве контейнера с Ребусом

ответ

1

Простого и удобным способом для достижения этой цели будет включать Rebus.Events package, который позволяет для создания делегата события, который будет вызвано, прежде чем каждое сообщение обрабатывается следующим образом:

Configure.With(...) 
    .(...) 
    .Events(e => 
    { 
     e.BeforeMessageHandled += (bus, headers, message, context, args) => 
     { 
      // do what you want in here :) 
     }; 
    }); 
+1

вы не представляете, как легко вы делаете мою жизнь :) Любите этот транспорт! Протестировано и работает как шарм – dariogriffo

+0

Когда Rebus.Events планируется выпустить как стабильный пакет? Все еще в бета-версии – dariogriffo

+1

хорошо ... когда достаточно людей попробовали и дали мне свой вердикт, я отпущу его - является ли предварительный статус препятствием для вас? – mookid8000

 Смежные вопросы

  • Нет связанных вопросов^_^