2016-06-30 83 views

回答

6

Consumer是一種您註冊的類型,它具有處理Consumer對象生命週期的專用處理程序。

處理程序實際上只是一個通用的事件處理程序。

如果您只需要一個小的Action<>塊來解決消息上的任何操作,就可以使用處理程序。如果您想註冊一個具有生命週期的類型來解析消息中的任何操作,您將使用消費者。一般來說,你最終會想要一個消費者,因爲希望你的容器爲這個類型解析依賴關係,而不是隻把它們放在你的處理程序的範圍內。但處理程序對於小事情或請求響應場景非常適用。

+0

根據你的描述,那麼,我認爲每個消息都會有一個Consumer實例?如果我在同一個類上設置了一個錯誤處理程序,那麼在處理錯誤時會使用最後一個實例還是全新實例? –

+1

取決於註冊。如果您使用IoC容器助手註冊,它會讓容器維持生命週期。還有,考慮到狀態在消息間被共享是很麻煩的,因爲如果它是單例的話,通常會有多個實例 - 每個線程至少有一個實例。 – Travis

相關問題