2017-10-16 93 views
0

我有一個消費者的泛型參數IEvent。此類型是所有消息的基本接口,並且IEvent的子接口具有其他一些屬性。我希望能夠訪問具有嵌套類型的所有屬性的原始消息,而不僅僅是IEvent範圍。這些屬性可以通過RMQ管理儀表板看到,我認爲應該有辦法將它們排除出去。有沒有辦法從MassTransit獲取原始消息?

回答

1

您可以使用context.TryGetMessage<T>()來請求特定的類型,它實際上試圖將消息反序列化爲指定的類型(只要它位於序列化到頭中的messageType列表中)。

否則,您可以使用context.TryGetMessage<JToken>(),並從JSON.NET中獲取JToken,它可用於導航消息正文。老實說,這不是正確處理事件等的最好方法,所以我會參考文檔來了解如何正確使用各種消息類型(並讓MassTransit執行艱苦的工作)。

+0

謝謝,克里斯!這正是我需要的。 –

+0

我同意這不是最好的解決方案,但在我的特殊情況下,我猜這是唯一的解決方案。長話短說,它能夠通過基本接口類型從其存儲中重新發送消息。我需要存儲整個原始信息才能重新發送。 –

+0

您也可以使用消費上下文的接收上下文來獲取正文流。 –

相關問題