Как зарегистрировать одноэлементный Redis Client Manager ServiceStack в ASP.NET Core с использованием контейнера по умолчанию - PullRequest
0 голосов
/ 02 мая 2018

Я читал несколько документов и статей о том, как использовать Redis-клиент ServiceStack, но все они используют метод AppHost ServiceStack и их встроенный Func IOC. Но я не хочу смешивать разные контейнеры IOC в моем проекте. Кроме того, я не хочу использовать какой-либо другой компонент ServiceStack, кроме клиента Redis. Поэтому я хотел внедрить единичный экземпляр IRedisClientsManager предпочтительно через фабрику RedisManagerPool, прямо из метода ConfigureServices Startup.cs

1 Ответ

0 голосов
/ 02 мая 2018

После просмотра кода из обновленного .NET Core Live Demos Я нашел простой и понятный способ сделать это.

Итак, по моему ConfigureServices методу я зарегистрировал IRedisClientsManager вот так

services.AddSingleton<IRedisClientsManager> (c =>
              new RedisManagerPool(Configuration.GetSection("Redis-Host").Value));

конечно, чтобы читать из конфигурации в ConfigureServices, вам нужно добавить конструктор, чтобы внедрить его в Startup

IConfiguration Configuration { get; set; }
        public Startup(IConfiguration configuration) => Configuration = configuration;
...