public HkRedisCacheDatabaseProvider(IOptions <HkRedisOptions> options) { _options = options.Value; Timeout = options.Value.Timeout; _connectionMultiplexer = new Lazy <ConnectionMultiplexer>(CreateConnectionMultiplexer); }
public static IServiceCollection AddHkRedisCache(this IServiceCollection services, HkRedisOptions setupAction) { Guard.Guard.ArgumentNotNull(nameof(setupAction.ConnectionString), setupAction.ConnectionString); services.Configure <HkRedisOptions>(x => { x.ConnectionString = setupAction.ConnectionString; x.DatabaseId = setupAction.DatabaseId; x.Timeout = setupAction.Timeout != TimeSpan.FromHours(0) ? setupAction.Timeout : TimeSpan.FromHours(1); }); //Redis connection must be singleton according to stackexchange docs! services.AddSingleton <IHkRedisCacheDatabaseProvider, HkRedisCacheDatabaseProvider>(); services.AddTransient <ICacheManager, HkRedisCache>(); services.AddTransient <ISerializer, Serializer>(); services.AddTransient <CacheAttribute>(); return(services); }