2017-04-10 34 views
0

要限制消費者(和總線)的數量,我們嘗試在一個消費者()/隊列中對一些處理進行分組。以消費方法向下轉發收到的消息

但是,當消費者將消息轉換爲正確的對象時,我會遇到問題。

假設我有一個消費者應該處理兩種請求類型。 2個子請求類型派生自基類型,我將該消息作爲派生類型發送,Consumer方法將其捕獲爲基類型,但無法得出請求類型是派生類型之一的結論。

我打算爲每個派生類型創建一個Custom Consume()方法。從主(初始)Consume()方法中,我想調用其中一個派生類型中的特定自定義Consume()方法,但我無法想象這樣做的方法。

和序列化有關,因爲序列化發生在後臺,所以我不能操縱這個或者我不知道該怎麼做。

我希望你能理解我的問題。有什麼辦法可以實現這一目標?同樣,主要原因是限制隊列數量,消耗方法。

+0

「但它不能斷定請求類型是派生類型之一」爲什麼不呢? –

+0

我試着'is''as'isassignablefrom',但我不能將它轉換爲正確的類型。 Consume方法用於監聽基本類型,我認爲不可能降低這一點。其實你的問題,我也是問太 – Ozkan

+0

但是你爲什麼不能施放它?你有例外嗎?空值?什麼? –

回答

1

您應該爲每個子類創建單獨的消費者,並直接使用子類。否則,你只是試圖複製已經由MassTransit處理的功能。

考慮審議關於創建消息的合同,多態的文檔等

http://masstransit-project.com/

相關問題