如何使用Autofac模块配置MassTransit?

时间:2019-08-25 17:52:32

标签: autofac masstransit autofac-module

我正在尝试使用Autofac(最新的NuGet软件包)设置MassTransit,但是似乎无法在ContainerBuilder级别注册消费者。 有没有人设法将MassTransit与Autofac一起使用,尤其是与模块一起使用?

在下面的示例中,除非我取消对x.AddConsumer行的注释并在构建器上评论注册,否则无法解析DoSomethingConsumer。

           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来配置端点。

对此将提供任何帮助。

0 个答案:

没有答案