我正在使用 MassTransit,需要使用请求/响应流。我还使用 Autofac 注册所有 MassTransit 的东西,如下所示:
builder.AddMassTransit(cfg =>
{
// Consumers
cfg.AddConsumers(ThisAssembly);
// Bus
cfg.UsingRabbitMq((context, c) =>
{
...
c.ReceiveEndpoint(settings.QueueName, e =>
{
...
e.ConfigureConsumers(context);
}
}
});
我在文档中读到我必须像这样注册 IRequestClient<> :
cfg.AddRequestClient<CheckOrderStatus>();
但是我不是只有一个 RequestClient,而是会有很多,并且想使用 Autofac 自动注册它们。
有 x.AddGenericRequestClient() 之类的东西,但它仅在使用 Microsoft DI 容器时才有效,并且当我尝试将此扩展的行为复制到 Autofac 中时,它不起作用,因为它说 ScopedConsumeContextProvider 未注册...
那么如何将多个可以在多个程序集中的 RequestClients 注册到 Autofac 中呢?