コード例 #1
0
 public RedisConfigurationProvider(RedisConfigurationOptions options)
 {
     _options     = options;
     _redisClient = new CSRedisClient(_options.ConnectionString);
     if (options.AutoReload)
     {
         //利用Redis的发布-订阅重新加载配置
         _redisClient.Subscribe((_options.HashCacheChannel, msg => Load()));
     }
 }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
 public static IConfigurationBuilder AddRedisConfiguration(this IConfigurationBuilder builder, RedisConfigurationOptions options)
 {
     return(builder.Add(new RedisConfigurationSource(options)));
 }
コード例 #4
0
 public RedisConfigurationSource(RedisConfigurationOptions options)
 {
     _options = options;
 }