3

当我使用 NServiceBus 订阅某种类型的消息时

Bus.Subscribe<MyMessage>()

我实际上在做什么?我是否指定接收者类型的特定方法将在收到消息时被调用?如果是这样,该方法在什么上下文中运行 - 在静态上下文中,或者在新的父类实例的上下文中(如果是这样,NServiceBus 如何知道要使用哪个构造函数)?

4

1 回答 1

8

一条消息被发送给发布者,告诉它“嗨,我的名字是'queue@subscriber-machine',我想订阅'MyMessage'事件 - 所以当你发布这些消息时将它们发送给我。” 发布者存储此信息。当发布者发布 MyMessage 事件时,这些事件会被放入订阅者的输入队列中。在订阅者方面,消息的处理与所有其他消息一样 - 所有实现 IHandleMessage<T> 的类,其中 T 与消息多态兼容,都以适当的顺序调用。

于 2010-03-19T06:56:02.383 回答