Redis
 sql >> Datenbank >  >> NoSQL >> Redis

.NET Core fügt den Singleton-Dienst in einen anderen Singleton-Dienst ein

Sie können die Factory-Delegatüberladung für AddSingleton verwenden bei der Registrierung des Dienstes

public void ConfigureServices(IServiceCollection services) {

    //...

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

    //...
}

Der Delegat übergibt einen IServiceProvider die verwendet werden können, um gewünschte Dienste aufzulösen.