如何:使用默认容器在 ASP.NET Core 中注册 ServiceStack 的 Redis 客户端管理器单例

Saw*_*rub 3 redis servicestack.redis asp.net-core asp.net-core-2.0

我一直在阅读一些关于如何使用ServiceStack的Redis客户端的文档和文章,但它们都使用ServiceStack的AppHost方法及其内置的Func IOC,但我不想在我的项目中混合不同的IOC容器。此外,除了 Redis 客户端之外,我不想使用任何其他 ServiceStack 组件。因此,我想直接从Startup.cs的方法注入IRedisClientsManager最好通过工厂的单例实例RedisManagerPoolConfigureServices

Saw*_*rub 5

在审查了更新的.NET Core 实时演示中的代码后, 我找到了一种干净而简单的方法。

所以在我的ConfigureServices方法中我IRedisClientsManager这样注册

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

当然,为了从ConfigureServices中读取配置,您需要添加一个构造函数将其注入到Startup中

IConfiguration Configuration { get; set; }
        public Startup(IConfiguration configuration) => Configuration = configuration;
Run Code Online (Sandbox Code Playgroud)