2016-06-30 60 views

回答

6

Consumer是一种您注册的类型,它具有处理Consumer对象生命周期的专用处理程序。

处理程序实际上只是一个通用的事件处理程序。

如果您只需要一个小的Action<>块来解决消息上的任何操作,就可以使用处理程序。如果您想注册一个具有生命周期的类型来解析消息中的任何操作,您将使用消费者。一般来说,你最终会想要一个消费者,因为希望你的容器为这个类型解析依赖关系,而不是只把它们放在你的处理程序的范围内。但处理程序对于小事情或请求响应场景非常适用。

+0

根据你的描述,那么,我认为每个消息都会有一个Consumer实例?如果我在同一个类上设置了一个错误处理程序,那么在处理错误时会使用最后一个实例还是全新实例? –

+1

取决于注册。如果您使用IoC容器助手注册,它会让容器维持生命周期。还有,考虑到状态在消息间被共享是很麻烦的,因为如果它是单例的话,通常会有多个实例 - 每个线程至少有一个实例。 – Travis

相关问题