新的 Rebus 和插件中没有方法



>我已经将这些用于在项目中传递消息的库更新到最新版本:

  • 画谜
  • Rebus.RabbitMQ
  • 雷布斯城堡温莎
  • Rebus.Log4Net
  • 温莎城堡

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

我有以下重总线配置 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 in RabbitMqOptionsBuilder
  • MessageOwnership in RebusConfigurer
  • Log4Net 扩展方法存在于库中,甚至无法被 VS 识别

不过,Rebus 文档在许多地方仍然有关于旧方法和方案的引用。

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

0.84.0 之前(含 0.84.0 的 Rebus 版本)是"Rebus 1" - Rebus 在 0.90.0 版本中收到了一个相当大的更新(重写了核心,然后向前移植了大多数库) - "Rebus 2"

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

Rebus 2 与 Rebus 1 不兼容,因此如果您决定更新到 2,您应该注意这一点。

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

相关内容

  • 没有找到相关文章

最新更新