订阅 mt queue 到 autofac 模块

Subscribe mt queue to autofac module

我正在尝试设置分解为多个逻辑服务的单个服务。因为它们是逻辑服务,所以它们各自到达那里自己的队列。每个逻辑服务都是 autofac 中的一个模块。

设置大致如下:

sbc.ReceiveEndpoint(host, "service1", ep => {
  ep.LoadFrom(c.Resolve<ILifetimeScope>())
});
sbc.ReceiveEndpoint(host, "service2", ep => {
  ep.LoadFrom(c.Resolve<ILifetimeScope>())
});

但我认为这会导致每个消费者都订阅每个队列。

是否有内置方法可以让 autofac 仅从特定模块注册消费者,或者我是否必须编写自己的适配器?

您需要编写自己的适配器。这不是很多工作。确保将容器中的消费者解析为具体 class,而不是 Consumes 的实现。