public RedisConfigurationProvider(RedisConfigurationOptions options) { _options = options; _redisClient = new CSRedisClient(_options.ConnectionString); if (options.AutoReload) { //利用Redis的发布-订阅重新加载配置 _redisClient.Subscribe((_options.HashCacheChannel, msg => Load())); } }
private static void ConfigureDynamicConfiguration(IMvcBuilder mvcBuilder, ConfigurationManager configurationManager) { var redisOptions = new RedisConfigurationOptions(); configurationManager.GetSection(nameof(RedisConfigurationOptions)).Bind(redisOptions); if (!string.IsNullOrEmpty(redisOptions.ConnectionString)) { configurationManager.AddRedis(redisOptions); } var configurationRoot = configurationManager as IConfigurationRoot; var dynamicConfiguratioProviderType = configurationManager.GetValue <string>("DynamicConfigurationOptions:ProviderType"); if (!string.IsNullOrEmpty(dynamicConfiguratioProviderType)) { var providerType = Type.GetType(dynamicConfiguratioProviderType, true); var provider = configurationRoot.Providers.First(p => p.GetType() == providerType); mvcBuilder.AddConfigurationWebAPI(configurationRoot, options => options.Provider = provider); } }
public static IConfigurationBuilder AddRedisConfiguration(this IConfigurationBuilder builder, RedisConfigurationOptions options) { return(builder.Add(new RedisConfigurationSource(options))); }
public RedisConfigurationSource(RedisConfigurationOptions options) { _options = options; }