【问题标题】:Is there a way to get raw message from MassTransit?有没有办法从 MassTransit 获取原始信息?
【发布时间】:2017-10-16 14:52:14
【问题描述】:

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

【问题讨论】:

    标签: rabbitmq masstransit


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,克里斯!这正是我所需要的。
    • 我同意这不是最好的解决方案,但在我的特殊情况下,我猜这是唯一的解决方案。长话短说,这是为了能够从它们的存储中重新发送消息,它们通过基本接口类型进入。而且我需要存储整个原始消息才能重新发送它。
    • 您还可以使用消费上下文之外的接收上下文来获取正文流。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    相关资源
    最近更新 更多