2016-07-03 6 views
0

Я реализую промежуточное ПО MassTransit в моей конечной точке приема, чтобы записать производительность обработки сообщения, я хочу получить тип сообщения из PipeContext, как я могу его получить?Получить тип сообщения из PipeContext из MassTransit

public async Task Send(T context, IPipe<T> next) 
    { 
     // I want to know the message type from here so that i can log it 
     using (_logger.BeginTimedOperation("Time for handling message", null, LogEventLevel.Debug)) 
     { 
      await next.Send(context); 

     } 
    } 

ответ

1

Вы должны были бы перехватить на ConsumeContext, которая имеет свойство для типов сообщений от сериализации конверта.

Затем, вы можете получить поддерживаемые типы сообщений с помощью:

IEnumerable<string> SupportedMessageTypes {get;} 

Это должно получить вам то, что вам нужно войти тип сообщения с длительностью.

Так фильтр по линиям:

public class LogMessageTypeFilter : 
    IFilter<ConsumeContext> 
{ 
} 

Реализуйте метод отправки, вызовите следующий в методе, а затем принять меры после завершения следующей трубы.

+0

Это замечательно, спасибо –

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

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