sql >> Base de Datos >  >> NoSQL >> Redis

.NET Core inyecta el servicio singleton en otro servicio singleton

Puede usar la sobrecarga del delegado de fábrica para AddSingleton al registrar el servicio

public void ConfigureServices(IServiceCollection services) {

    //...

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

    //...
}

El delegado pasa un IServiceProvider que se puede utilizar para resolver los servicios deseados.