使用Bus.Publish发布消息和使用Bus.Send发送消息之间有什么本质区别?我期待了解它们之间的差异,以及何时我应该选择使用另一个。NServiceBus中Bus.Publish和Bus.Send之间的区别?
25
A
回答
28
发布用于通知多个订阅者特定事件。发布端点将具有订阅存储以标识向何处发送消息。发送通常用于向端点发送命令。一条命令告诉端点做某事,不应该期望得到答复(尽管你有时候确实需要答复,而NSB支持这种答复)。
您看不到Send()的目的地的原因是您通过配置指定了目的地。在你的app.config中,你将把消息类型(整个程序集或类)映射到目标。当你这样做时,你不必提供目的地。
14
Bus.Publish:当您不知道消息的去向(0到多个订阅者)时使用。
Bus.Send:当您发送消息到特定处理程序(客户端到服务器)时。
0
后容易Context.Publish()是用于发布事件类型和Context.Send()是命令类型
相关问题
- 1. 测试Bus.Send使用NServiceBus
- 2. '+ ='和'= +'之间的区别?
- 3. {!!之间的区别!!}和{{}}
- 4. ==和case之间的区别?
- 5. '#','%'和'$'之间的区别
- 6. | =和^ = css之间的区别
- 7. “%〜dp0”和“。\”之间的区别?
- 8. .eq之间的区别。和==
- 9. ==和.equals()之间的区别?
- 10. `%in%`和`==`之间的区别
- 11. javascript中的/ * * /和//之间的区别
- 12. python中的[]和[,,]之间的区别
- 13. make中的“$(shell ...)”和“$$(...)”之间的区别
- 14. C中的/ +和+之间的区别?
- 15. SPFile和PublishingPage类别之间的区别
- 16. System.Timers.Timer Enabled = true和.Start()之间的区别Enabled = true和.Start()之间的区别
- 17. Selenium中verifyText和verifyTextPresent之间的区别
- 18. angularjs中$ cookiestore和$ cookies之间的区别
- 19. ios中stringByAppendingString和appendString之间的区别
- 20. XPath中// * /和/ * //之间的区别?
- 21. TestNG中@DataProvider和@Parameters之间的区别
- 22. Azure中CloudDrive.Delete()和CloudBlobContainer.Delete()之间的区别
- 23. OpenSSL中EVP_PKEY_RSA和EVP_PKEY_RSA2之间的区别?
- 24. R中'foreach'和'parallel'之间的区别?
- 25. PHP中$ POST和$ _POST之间的区别
- 26. ACE_wrappers中ACE.sln和ACE_wrappers.sln之间的区别?
- 27. 中风和填充之间的区别?
- 28. Sharepoint中CatchAccessDeniedException和SuppressAccessDeniedRedirectInScope之间的区别
- 29. C#中char和int之间的区别#
- 30. wpf中datagrid和grid之间的区别
好吧,既然这样,为什么有些send()方法重载没有一个目的地是哪里?困惑... – 2011-02-08 23:13:11
我们更深入地理解语义。发布是一个事件,我们将事件视为“嗨,刚刚发生的事情,我不在乎你如何处理这些信息,而是在这里”,我们将Bus.Send视为命令,其意思是“嘿,我需要你做一些事情,并且我关心结果会发生什么(因此知道我要发送给谁)“ – Matt 2014-03-05 16:35:34
@SeanKearon是的,你在4年前发布了这个,但是对于其他任何人。 send命令的目标可以在配置中定义。你并不是真的想要你的代码配置信息,所以你可以使用更简单的Send()方法,如果它是在你的配置中定义的,它不会将目的地作为参数。 – XenoPuTtSs 2014-11-13 13:50:48