有没有办法从 MassTransit 获取原始消息?

Is there a way to get raw message from MassTransit?

我有一个使用通用参数的消费者 IEvent。此类型是所有消息的基本接口,IEvent 的子接口具有一些其他属性。我想访问具有嵌套类型所有属性的原始消息,而不仅仅是 IEvent 范围。这些属性可以通过 RMQ 管理仪表板看到,我认为应该有办法把它们放出来。

您可以使用 context.TryGetMessage<T>() 来请求特定类型,这实际上是尝试将消息反序列化为指定类型(只要它在序列化为 header 的 messageTypes 列表中) .

否则,您可以使用 context.TryGetMessage<JToken>(),并从 JSON.NET 获取 JToken,可用于导航消息 body。

老实说,这不是正确处理事件等的最佳方法,因此我会参考文档以了解如何正确使用各种消息类型(并让 MassTransit 完成艰苦的工作)。