2016-07-14 26 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