新的Rebus和插件中没有方法

时间:2016-07-14 13:35:22

标签: rabbitmq log4net castle-windsor rebus

我已将这些库更新为项目中的消息传递到最新版本:

  • Rebus
  • Rebus.RabbitMQ
  • Rebus.Castle.Windsor
  • Rebus.Log4Net
  • Castle.Windsor

当发现此版本中缺少一些非常方便的旧方法时,我感到非常困惑。

我有以下rebus配置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
  • RabbitMqOptionsBuilder中的ManageSubscriptions
  • RebusConfigurer中的MessageOwnership
  • Log4Net扩展方法存在于库中,甚至不被VS
  • 识别

Rebus文档虽然在许多地方仍然引用了旧方法和场景。

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

1 个答案:

答案 0 :(得分:1)

Rebus版本最高可达0.84.0" Rebus 1" - Rebus在版本0.90.0中收到了一个非常大的更新(重写了核心,然后移植了大多数lib) - " Rebus 2"

所以你最好的选择可能是Update-Package Rebus -Version 0.84.0(并对RabbitMQ,Windsor和Log4net集成包做同样的事情)

Rebus 2与Rebus 1不兼容,因此如果你决定更新为2,你应该知道这一点。

此外(正如您所发现的)它已经看到了一些API更改,其中最重要的变化是IBus上的大多数方法现在都是async,因此需要您{{1} (或await bus.Send(...)如果您不在bus.Send(...).Wait()方法中)