Exemple #1
0
        /// <summary>
        /// 移除配置信息。
        /// </summary>
        /// <param name="id"></param>
        public static void RemoveConfig(string id)
        {
            List <ConnectionConfig> configs = JsonConfigUtil.GetConfigObject <List <ConnectionConfig> >(PathConnections);
            int index = configs.FindIndex(p => p.Id.Equals(id));

            configs.RemoveAt(index);
            JsonConfigUtil.SetConfigObject <List <ConnectionConfig> >(PathConnections, configs);

            DictConnectionConfig.Remove(id);
            RedisCaches.Remove(id);
        }
Exemple #2
0
        /// <summary>
        /// 保存配置信息。
        /// </summary>
        /// <param name="config"></param>
        /// <exception cref="DuplicateMemberException">成员重复异常</exception>
        public static void SaveConfig(ConnectionConfig config)
        {
            List <ConnectionConfig> configs = JsonConfigUtil.GetConfigObject <List <ConnectionConfig> >(PathConnections);

            if (configs == null)
            {
                configs = new List <ConnectionConfig>();
            }
            if (configs.Exists(p => p.Name.Equals(config.Name)))
            {
                throw new DuplicateMemberException($"已存在名为 {config.Name} 的配置信息。");
            }
            configs.Add(config);

            JsonConfigUtil.SetConfigObject <List <ConnectionConfig> >(PathConnections, configs);

            DictConnectionConfig.Add(config.Id, config);
            string host = (string.IsNullOrEmpty(config.Password) ? "" : $"{config.Password}@") + $"{config.IP}:{config.Port}";

            string[] hosts = new string[] { host };
            RedisCaches.Add(config.Id, new RedisCache(hosts, hosts));
        }