MassTransit 5.2.1中ConfigureConfig中的UseSendExecute

时间:2019-01-15 14:05:21

标签: c# masstransit

在MassTransit 5.2.0中,我使用ConfigurePublish内的UseSendExecute方法将标头添加到特定消息类型:

    var bus = BusConfigurator.ConfigureBus((h,cfg) =>
    {
         h.ConfigurePublish(x =>
            x.UseSendExecute<TestMessage>(p => 
            { 
                  p.Headers.Set("x-deduplication-header", p.Message.Day.Ticks);
            }));
    });

升级到MassTransit 5.2.1后,ConfigurePublish中不再提供UseSendExecute方法。

深入研究MassTransit的内部更改,我发现出现问题是因为MassTransit.IPublishPipeConfigurator不再实现MassTransit.ISendPipeConfigurator,而UseSendExecute是MassTransit.DelegatePipeConfiguratorExtensions中ISendPipeConfigurator的扩展方法。

如何使用5.2.1版本设置相同的发布配置?

1 个答案:

答案 0 :(得分:0)

好吧,您正在配置发布行为。新语法为:

var bus = BusConfigurator.ConfigureBus((h,cfg) =>
{
    h.ConfigurePublish(pc => pc.AddPipeSpecification(
        new DelegatePipeSpecification<PublishContext<TestMessage>>(p =>
        {
            p.Headers.Set("x-deduplication-header", p.Message.Day.Ticks);
        })));
});