0
我有一個消費者的泛型參數IEvent
。此類型是所有消息的基本接口,並且IEvent
的子接口具有其他一些屬性。我希望能夠訪問具有嵌套類型的所有屬性的原始消息,而不僅僅是IEvent
範圍。這些屬性可以通過RMQ管理儀表板看到,我認爲應該有辦法將它們排除出去。有沒有辦法從MassTransit獲取原始消息?
我有一個消費者的泛型參數IEvent
。此類型是所有消息的基本接口,並且IEvent
的子接口具有其他一些屬性。我希望能夠訪問具有嵌套類型的所有屬性的原始消息,而不僅僅是IEvent
範圍。這些屬性可以通過RMQ管理儀表板看到,我認爲應該有辦法將它們排除出去。有沒有辦法從MassTransit獲取原始消息?
您可以使用context.TryGetMessage<T>()
來請求特定的類型,它實際上試圖將消息反序列化爲指定的類型(只要它位於序列化到頭中的messageType列表中)。
否則,您可以使用context.TryGetMessage<JToken>()
,並從JSON.NET中獲取JToken
,它可用於導航消息正文。老實說,這不是正確處理事件等的最好方法,所以我會參考文檔來了解如何正確使用各種消息類型(並讓MassTransit執行艱苦的工作)。
謝謝,克里斯!這正是我需要的。 –
我同意這不是最好的解決方案,但在我的特殊情況下,我猜這是唯一的解決方案。長話短說,它能夠通過基本接口類型從其存儲中重新發送消息。我需要存儲整個原始信息才能重新發送。 –
您也可以使用消費上下文的接收上下文來獲取正文流。 –