如何在MassTransit中从ConsumeContext将标头复制到PublishContext / SendContext

时间:2018-11-12 19:10:19

标签: masstransit

像MassTransit那样,在消费过程中发布/发送消息时,我正在尝试复制标头(基本上是TenantId)。

有关于如何修改发布管道[1][2]的主题,但是所有主题都添加了一些硬编码的值。但是我需要将数据从“消费”传输到“发布/发送”管道。

有一种名为TransferConsumeContextHeaders的方法完全可以满足我的需要,但我需要以某种方式访问​​ConsumeContext方法中不可用的ConfigurePublish

谢谢。

UPD : 设法通过下面的代码实现了这一点,但是我不确定这是个好主意。

var consumeContext = context.GetPayload<ConsumeContext>();
context.TransferConsumeContextHeaders(consumeContext);

Here's完整示例。

1 个答案:

答案 0 :(得分:0)

基于评论和一些疯狂的猜测,这是人们如何从发布/发送访问ConsumeContext的方式:context.TryGetPayload(out ConsumeContext consumeContext)

然后就可以对传入数据进行任何操作,例如以通用方式将一些重要数据复制到“发布/发送”。