Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

.NET Core injeta serviço singleton em outro serviço singleton


Você pode usar a sobrecarga de delegado de fábrica para AddSingleton ao registrar o serviço
public void ConfigureServices(IServiceCollection services) {

    //...

    services.AddSingleton<IConnectionMultiplexer>(ConnectionMultiplexer.Connect(GetRedisConnectionString()));
    services.AddSingleton<IMyService>(serviceProvider => 
        new MyService(new DbContext(optionsBuilder.Options), serviceProvider.GetRequiredService<IConnectionMultiplexer>())
    );

    //...
}

O delegado passa em um IServiceProvider que pode ser usado para resolver os serviços desejados.