2016-07-14 50 views
1

我曾经在一个项目到最新版本,更新了这些库消息:方法是在新的卤面缺席和插件

  • 卤面
  • Rebus.RabbitMQ
  • Rebus.Castle.Windsor
  • Rebus.Log4Net
  • Castle.Windsor

我很迷茫w ^母鸡发现在这个版本中缺少一些非常方便的旧方法。

我有以下字谜配置API:

Configure.With(new WindsorContainerAdapter(container)) 
     .Logging(l => l.Log4Net()) 
     .Transport(t => t.UseRabbitMqAndGetInputQueueNameFromAppConfig(connectionString) 
     .ManageSubscriptions().SetPrefetchCount(5)) 
     .MessageOwnership(d => d.FromRebusConfigurationSection()) 
     .Serialization(s => s.Use(new MySerializer())) 
     .CreateBus() 
     .Start(); 

这些方法是在新版本中缺席:

  • UseRabbitMqAndGetInputQueueNameFromAppConfig
  • ManageSubscriptions在RabbitMqOptionsBuilder
  • MessageOwnership在RebusConfigurer
  • Log4Net e xtension方法存在于甚至没有被VS识别的库中

Rebus文档虽然在许多地方仍旧有旧方法和场景的参考文献。

旧的便捷方法做了什么?有没有人有同样的问题,并可以给我一个提示在当前版本(0.99.67)中使用什么apis来配置客户端的现有方式。

+0

你最好的选择可能是[提出问题](https://github.com/rebus-org/Rebus/issues) – stuartd

回答

1

Rebus版本高达并包括0.84.0是“Rebus 1” - Rebus在版本0.90.0 - “Rebus 2”中收到了一个相当大的更新(重写了核心,随后移植了大多数库文件)

所以你最好的选择可能是Update-Package Rebus -Version 0.84.0(做同样的RabbitMQ的,温莎和log4net的集成包)

卤面2是卤面1不兼容,因此,如果您决定升级到2,你应该意识到这一点。

而且(如你发现)它已经看到了几个API的变化,其中最显著的变化是,在IBus大部分方法都是现在async,因此需要你,例如await bus.Send(...)(或bus.Send(...).Wait()如果你不是在async方法)

+0

谢谢你的回答。我是Rebus和消息传送的新手。你能否给我一个提示,在哪里阅读我应该使用什么以及如何使用而不是旧方法也是可以使用新的Rebus而不是UseRabbitMqAndGetInputQueueNameFromAppConfig - 从rebus配置读取队列名称,我应该使用什么而不是ManageSubscriptions和MessageOwnership(d => d.FromRebusConfigurationSection() – TakinosaJi

+0

是的 - 在这里查看:https://github.com/rebus-org/Rebus/issues/490#issuecomment-232889458 – mookid8000

+0

Hi @TakinosaJi - 如果你满意答案是否可以,请您将问题标记为已回答? – mookid8000