使用 Microsoft 依赖注入的自定义消费者实现工厂
Custom consumer implementation factory with Microsoft Dependency Injection
有没有办法像下面的服务那样注册消费者:
services.AddTransient < IMyService > (provider => {
return new MyServiceImplementation(2);
});
用AddConsumer<T>()
方法?
我需要的是消费者工厂的自定义实现,因为它将根据配置注入其依赖项之一的不同实例。
MassTransit 注册通过 AddConsumer
添加的消费者,如下所示:
collection.AddScoped<T>();
欢迎您在配置 MassTransit 之后创建自己的寄存器,这应该会取代 MassTransit 注册的寄存器。在上面的示例中,它可能类似于:
services.AddScoped<TConsumer>(provider =>
{
var options = provider.GetService<SomeOptions>();
if (options.UseFirst)
return new TConsumer(provider.GetRequiredService<Impl1>()
return new TConsumer(provider.GetRequiredService<Impl2>()
});
你看到照片了,对吧?
有没有办法像下面的服务那样注册消费者:
services.AddTransient < IMyService > (provider => {
return new MyServiceImplementation(2);
});
用AddConsumer<T>()
方法?
我需要的是消费者工厂的自定义实现,因为它将根据配置注入其依赖项之一的不同实例。
MassTransit 注册通过 AddConsumer
添加的消费者,如下所示:
collection.AddScoped<T>();
欢迎您在配置 MassTransit 之后创建自己的寄存器,这应该会取代 MassTransit 注册的寄存器。在上面的示例中,它可能类似于:
services.AddScoped<TConsumer>(provider =>
{
var options = provider.GetService<SomeOptions>();
if (options.UseFirst)
return new TConsumer(provider.GetRequiredService<Impl1>()
return new TConsumer(provider.GetRequiredService<Impl2>()
});
你看到照片了,对吧?