我正在尝试使用 Autofac(最新的 NuGet 包)设置 MassTransit,但似乎无法在该ContainerBuilder
级别注册消费者。有没有人设法将 MassTransit 与 Autofac 一起使用,尤其是与模块一起使用?
在下面的示例中,DoSomethingConsumer 无法解析,除非我取消注释该x.AddConsumer
行并注释构建器上的注册。
builder.RegisterType<BusControlHostedService>().As<IHostedService>();
builder.RegisterType<DoSomethingConsumer>().AsSelf().AsImplementedInterfaces();
builder.AddMassTransit(x =>
{
//x.AddConsumer<DoSomethingConsumer>();
x.AddBus(componentContext => Bus.Factory.CreateUsingRabbitMq(cfg =>
{
cfg.Host("host", "vhost", h =>
{
h.Username("user");
h.Password("password");
});
cfg.UseExtensionsLogging(componentContext.Resolve<ILoggerFactory>());
cfg.ConfigureEndpoints(componentContext);
}));
x.AddRequestClient<DoSomethingRequest>();
});
https://masstransit-project.com/MassTransit/usage/containers/autofac.html上的文档似乎是错误的。构建器上没有.AddConsumer
扩展方法。
我希望从模块中注册消费者,并能够按照约定(如上面的示例)或使用.RegisterEndpoint
.
对此的任何帮助将不胜感激。