如何向ConsumeContext添加自定义有效负载?

时间:2016-10-07 08:29:34

标签: masstransit

我尝试将自定义有效负载添加到ConsumeContext,如此

public Task Consume(ConsumeContext<Message1> context)
{
    context.GetOrAddPayload(() => new Payload());
    return context.Publish(new Message2()); 
}

期望在Message2使用者中获得此有效负载。但是在上下文中没有这样的有效载荷;

public Task Consume(ConsumeContext<Message2> context)
{
    Payload payload;
    context.TryGetPayload<Payload>(out payload);
}

有效负载始终为null。 那么我可以将我的cusom有效负载添加到上下文以及如何正确执行它?感谢。

1 个答案:

答案 0 :(得分:0)

添加到ConsumeContext的有效负载仅对当前消息有效,并且不是持久性的。它们被中间件组件用于保存数据和/或为消费消息的下游中间件组件或服务(例如消费者,传奇等)提供数据。

如果需要在消息之间保存数据,请考虑使用通过公共标识符关联的saga,以便将消息传递到同一个saga实例。