Bạn có thể sử dụng quá tải ủy quyền của nhà máy cho AddSingleton
khi đăng ký dịch vụ
public void ConfigureServices(IServiceCollection services) {
//...
services.AddSingleton<IConnectionMultiplexer>(ConnectionMultiplexer.Connect(GetRedisConnectionString()));
services.AddSingleton<IMyService>(serviceProvider =>
new MyService(new DbContext(optionsBuilder.Options), serviceProvider.GetRequiredService<IConnectionMultiplexer>())
);
//...
}
Người được ủy quyền chuyển vào một IServiceProvider
có thể được sử dụng để giải quyết các dịch vụ mong muốn.