Redis
 sql >> Database >  >> NoSQL >> Redis

.NET Core inietta il servizio singleton in un altro servizio singleton

Puoi utilizzare l'overload del delegato di fabbrica per AddSingleton al momento della registrazione del servizio

public void ConfigureServices(IServiceCollection services) {

    //...

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

    //...
}

Il delegato passa un IServiceProvider che può essere utilizzato per risolvere i servizi desiderati.