消費者やサガに届く前に、各メッセージを調べたいと思います。IInboundMessageInterceptorが必要だと思いますが、カスタムを挿入する簡単な方法がわかりません。MTでメッセージインターセプトを実現するにはどうすればよいですか?および/またはカスタムIInboundMessageInterceptorを使用してバスを構成するにはどうすればよいですか?
1395 次
1 に答える
4
次のことができます。インターセプターはIInboundMessageInterceptorを実装する必要があります
Bus.Initialize(sbc =>
{
// ... Initialise Settings ...
var busConfiguratorr = new PostCreateBusBuilderConfigurator(bus =>
{
var interceptorConfigurator = new InboundMessageInterceptorConfigurator(bus.InboundPipeline);
interceptorConfigurator.Create(new MyIncomingInterceptor(bus));
});
sbc.AddBusConfigurator(busConfiguratorr);
});
次に、そのようなインターセプターを書くことができます
internal class MyInboundInterceptor : IInboundMessageInterceptor
{
public MyInboundInterceptor(ServiceBus bus)
{
}
public void PreDispatch(IConsumeContext context)
{
IConsumeContext<AwesomeCommand> typedContext;
if (context.TryGetContext(out typedContext))
{
// Do SOmething with typedContext.Message
}
}
public void PostDispatch(IConsumeContext context)
{
}
}
于 2012-12-10T17:26:56.513 に答える