如何在不发送任何消息的情况下在 Asp.net 核心控制器中获取 MassTransit ConversationId?

How to get MassTransit ConversationId inside Asp.net core controller without sending any messages?

在 ASP.NET 核心控制器中,我有一个创建消息和修改数据库的操作。为了使其更可靠,它使用我们实现的发件箱模式将消息序列化到数据库。

问题是我们在将 MassTransit 的消息保存到数据库时丢失了 ConversationId,我没有找到从 IPublishEndpoint 界面中取出它的方法。

有什么关于如何获得 ConversationId 的建议吗?

消息只是任何 c# 类,没有任何特殊界面。

标识符作为 PublishContext<T> 的一部分进行了初始化,因此您需要确保所有属性(包括 header collection)都已正确序列化并在以下情况下被替换消息最终发布。