2016-07-03 3 views
0

메시지 수신 성능을 기록하기 위해 수신 엔드 포인트에 MassTransit 미들웨어를 구현 중입니다. PipeContext에서 메시지 유형을 가져오고 싶습니다. 어떻게받을 수 있습니까?MassTransit의 PipeContext에서 메시지 유형 가져 오기

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

정말 대단합니다. 감사합니다. –