我的消费者有这个构造函数:
public QueueProcessingService(ILogger<QueueProcessingService> logger, IQueueRepository repository, ISendEndpoint endpoint)
{
_logger = logger;
_repository = repository;
_endpoint = endpoint;
}
System.InvalidOperationException:尝试激活“OrderConsumerService.QueueProcessingService”时无法解析类型“MassTransit.ISendEndpoint”的服务。
我尝试了 services.AddScoped
根据这篇文章,你可以发现如果你想使用
ISendEndpointProvider (scoped)
,你应该首先使用以下代码在program.cs中注册MassTransit:
using MassTransit;
services.AddMassTransit(x =>
{
// A Transport
x.UsingRabbitMq((context, cfg) =>
{
});
});
添加 MassTransit,如上所示,将为服务集合配置所需的组件,包括:
IBus(单例)
IBusControl(单例)
IReceiveEndpointConnector(单例)
ISendEndpointProvider(作用域)
IPublishEndpoint(范围)
IRequestClient(范围)