NServiceBus - DefineEndpointName 和 app.config MessageEndpointMappings 之间的区别

NServiceBus - Difference between DefineEndpointName and app.config MessageEndpointMappings

有人可以解释在 Configure.DefineEndpointName 中配置 EndpointName 与在 MessageEndpointMappings 下的 app.config 中指定它之间的区别吗?

.DefineEndpointName("Something.MessageQueue")

 <UnicastBusConfig>
    <MessageEndpointMappings>
      <add Assembly="Something.Messages" Endpoint="Something.MessageQueue" />
    </MessageEndpointMappings>
  </UnicastBusConfig>

这会将 current 端点的名称设置为 "Something.MessageQueue":

.DefineEndpointName("Something.MessageQueue")

这告诉配置的端点,当发送驻留在程序集 Something.Messages 中的消息时,要将它们发送到的 目的地 端点是 "SomethingServer.MessageQueue"。我更改了您示例中的端点名称以说明它们是不同的端点。

<UnicastBusConfig>
    <MessageEndpointMappings>
      <add Assembly="Something.Messages" Endpoint="SomethingServer.MessageQueue" />
    </MessageEndpointMappings>
  </UnicastBusConfig>

我应该注意,如果您想向自己发送消息(这有时会有用),端点名称 可以 是相同的端点。

编辑

文档链接: