当我使用NServiceBus订阅消息时会发生什么?

Ben*_*Ben 3 messaging nservicebus

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

Bus.Subscribe<MyMessage>()
Run Code Online (Sandbox Code Playgroud)

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

Udi*_*han 8

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