2016-07-03 7 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> 
{ 
} 

は、sendメソッドを実装し、次のメソッド内で呼び出して、その後、次のパイプが完了した後に行動を取ります。

+0

これは素晴らしいです、ありがとう –

関連する問題