Redis
 sql >> Base de données >  >> NoSQL >> Redis

.NET Core injecte le service singleton dans un autre service singleton

Vous pouvez utiliser la surcharge du délégué d'usine pour AddSingleton lors de l'enregistrement du service

public void ConfigureServices(IServiceCollection services) {

    //...

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

    //...
}

Le délégué transmet un IServiceProvider qui peut être utilisé pour résoudre les services souhaités.