В настоящее время я передаю исключения третьим сторонам службы слежения за телеметрией (Raygun). Одна из деталей, которую я хочу включить в эти журналы исключений, - это фактическое содержимое сообщения, идеально сериализованное в JSON.Получение доступа к телу сообщения при обработке ошибок в NServiceBus Version 3
Я обрабатываю это в конце MessageHandler
. Я знаю, что я мог бы также использовать интерфейс IManageMessageFailures
, но затем я теряю преимущества повторных попыток второго уровня.
В настоящее время я делаю это:
public void End(Exception e)
{
// get the current message context
var context = this.Bus.CurrentMessageContext;
// now where do I get the body of the message from?
this.ExceptionLogger(new Log(e, context.WhereAreYouMessage.SerializedAsString()));
}
Это NSB 3,3. Я замечаю, что могу наложить CurrentMessageContext
на NServiceBus.Unicast.MessageContext
, но свойство TransportMessage
, содержащее сообщение Body
, является закрытым.
Как я могу получить копию сообщения, вызвавшего исключение?