新的 Rebus 和插件中没有方法

Methods are absent in new Rebus and plugins

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

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

我有以下 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();

新版本中没有这些方法:

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

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

Rebus 0.84.0 及以下版本是 "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(...)(或者 bus.Send(...).Wait() 如果你不在 async 方法中)