MassTransit自定义MessageType名称

时间:2018-08-20 12:49:13

标签: c# .net masstransit

我们一直在使用MassTransit充当微服务之间的ServiceBus。

我们在python中使用微服务,而在.Net中使用其他服务,在这种情况下,python服务会发布一条消息,例如bus.publish('x.y.z', message)

当然,.Net端的类型为x.y.z,我们想将x.y.x的命名空间更改为a.b.c,并且仍然让系统正常工作而无需更改python端

我尝试过cfg.Message<A.B.C>(x => x.SetEntityName("x.y.z"));

但是它不起作用,我可以在队列中看到该消息,并且有人读取了该消息,但没有触发任何使用者。

谢谢

1 个答案:

答案 0 :(得分:0)

您需要查看序列化的消息信封(JSON),以了解如何格式化消息(使用Python或任何其他语言),并在其中包括消息类型(使用MassTransit要求的类型名称格式样式)。信封。

有关详细信息,请参见文档中的此页面:http://masstransit-project.com/MassTransit/advanced/interoperability.html

不仅仅是实体名称,它还用于发布和订阅,但是您需要查看信封中的实际类型,以便消费者能够反序列化消息。