Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rabbitmq 新的Rebus和插件中缺少方法_Rabbitmq_Log4net_Castle Windsor_Rebus - Fatal编程技术网

Rabbitmq 新的Rebus和插件中缺少方法

Rabbitmq 新的Rebus和插件中缺少方法,rabbitmq,log4net,castle-windsor,rebus,Rabbitmq,Log4net,Castle Windsor,Rebus,我已将项目中用于消息传递的这些库更新为最新版本: 反驳 兔眼草 温莎城堡酒店 Rebus.Log4Net 温莎城堡 当我发现这个版本中缺少一些非常方便的旧方法时,我感到非常困惑 我有以下REBS配置api: Configure.With(new WindsorContainerAdapter(container)) .Logging(l => l.Log4Net()) .Transport(t => t.UseRabbitMqAndGetInpu

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

  • 反驳
  • 兔眼草
  • 温莎城堡酒店
  • Rebus.Log4Net
  • 温莎城堡
当我发现这个版本中缺少一些非常方便的旧方法时,我感到非常困惑

我有以下REBS配置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中的管理订阅
  • 重新配置器中的消息所有权
  • Log4Net扩展方法存在于库中,甚至不被VS识别
然而,REBS文档在许多地方仍然参考了旧方法和场景


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

0.84.0之前(包括0.84.0)的Rebus版本是“Rebus 1”-Rebus在0.90.0版本“Rebus 2”中收到了相当大的更新(重写了核心,然后移植了大多数libs转发)

因此,您最好的选择可能是
更新包Rebus-Version 0.84.0
(并对RabbitMQ、Windsor和Log4net集成包执行相同的操作)

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


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

您最好的选择可能是感谢您的回答。我不太熟悉Rebus和消息传递。您能给我一个提示,在哪里阅读关于我应该使用什么以及如何使用旧方法的内容吗?是否仍然可以在新的Rebus中使用某些内容而不是UseRabbitMqAndGetInputQueueNameFromAppConfig?要从Rebus配置中读取队列名称,我应该使用什么来代替ManageSubscriptions和MessageOwnery(d=>d.fromsconfigurationsection()肯定是-在这里查看:Hi@TakinosaJi-如果您对答案感到满意,请您将问题标记为已回答好吗?