NServiceBus中的Bus.Publish和Bus.Send之间的区别?

时间:2011-02-08 21:29:44

标签: nservicebus

使用Bus.Publish发布消息和使用Bus.Send发送消息之间有什么本质区别?我希望了解它们之间的区别,以及我何时应该选择使用其中一种。

3 个答案:

答案 0 :(得分:30)

发布用于通知多个订阅者特定事件。发布端点将具有订阅存储,以标识将消息发送到的位置。发送通常用于向端点发出命令。命令告诉端点做某事并且不应该期待回复(尽管有时你确实需要回复而NSB支持这个)。

您没有看到Send()目标的原因是您通过配置指定目标。在app.config中,您将消息类型(整个程序集或类)映射到目标。执行此操作时,您无需提供目的地。

答案 1 :(得分:15)

Bus.Publish :当您不知道消息的去向时使用(0到多个订阅者)。
Bus.Send :当您向特定处理程序(客户端到服务器)发送消息时。

答案 2 :(得分:0)

通常Context.Publish()用于发布事件类型,Context.Send()用于命令类型