Я использую StackExchange.Redis для подключения к серверу Redis из .NET Core. Как я могу внедрить синглтон IConnectionMultiplexer
в другой синглтон сервис?
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
...
services.AddSingleton<IConnectionMultiplexer>(ConnectionMultiplexer.Connect(GetRedisConnectionString()));
services.AddSingleton<IMyService>(new MyService(new DbContext(optionsBuilder.Options)), ???);
...
}
MyService.cs
private DbContext _dbContext;
private IConnectionMultiplexer _redis;
public MyService(DbContext dbContext, IConnectionMultiplexer redis)
{
_dbContext = fitDBContext;
_redis = redis;
}
Что мне нужно поставить вместо ???
в ConfigureServices
? Есть ли другой подход?
StackExchange.Redis
предлагает ( ссылка ), чтобы мы сохранили возвращенное значение вызова ConnectionMultiplexer.Connect(...)
и использовали его повторно. Поэтому я создал для него одноэлементный сервис (он основан на другом вопросе StackOverFlow ), который может быть введен, но мне не повезло внедрить его в другой сервис SINGLETON MyService
.