C#配置文件读写(App.config)

    using System.Collections.Generic;
    using System.Configuration;  //有可能可以using但不能用,需重新添加引用

    /// 
    /// 针对配置文件的读写操作 (App.config)
    /// ps:key和name都不区分大小写
    /// 
    public class AppConfig
    {
        Configuration _configuration;

        /// 
        /// 打开当前的config
        /// 
        public AppConfig()
        {
            _configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
        }

        /// 
        /// 打开指定路径的config
        /// 
        /// 
        public AppConfig(string path)
        {
            _configuration = ConfigurationManager.OpenExeConfiguration(path);
        }

        /// 
        /// 读取所有的AppSettings
        /// 
        /// 
        public Dictionary ReadAllSettings()
        {
            Dictionary dictKV = new Dictionary();
            var settings = _configuration.AppSettings.Settings;
            foreach (string key in settings.AllKeys)
            {
                dictKV[key] = settings[key].Value;
            }
            return dictKV;
        }

        /// 
        /// 读取AppSettings指定Key的Value
        /// 
        /// 
        public string ReadSetting(string key)
        {
            var settings = _configuration.AppSettings.Settings;
            return settings[key].Value;
        }

        /// 
        /// 修改AppSettings指定Key的值(没有就添加)
        /// 
        /// 
        /// 
        public bool AddUpdateSettings(string key, string value, bool noToAdd = true)
        {
            var settings = _configuration.AppSettings.Settings;
            if (settings[key] == null)
            {
                if (noToAdd)  //没有就添加
                {
                    settings.Add(key, value);
                }
                else
                {
                    return false;
                }
            }
            else
            {
                settings[key].Value = value;
            }
            _configuration.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection(_configuration.AppSettings.SectionInformation.Name);
            return true;
        }

        /// 
        /// 移除AppSettings指定Key
        /// 
        /// 
        /// 
        public bool RemoveSetting(string key)
        {
            var settings = _configuration.AppSettings.Settings;
            if (settings[key] == null)
            {
                return false;
            }
            settings.Remove(key);
            _configuration.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection(_configuration.AppSettings.SectionInformation.Name);
            return true;
        }

        /// 
        /// 读取所有的ConnectionStrings
        /// 
        /// 
        public Dictionary ReadConnectionStrings()
        {
            Dictionary dictKV = new Dictionary();
            var connectionStrings = _configuration.ConnectionStrings.ConnectionStrings;
            foreach (ConnectionStringSettings key in connectionStrings)
            {
                dictKV[key.Name] = connectionStrings[key.Name].ConnectionString;
            }
            return dictKV;
        }

        /// 
        /// 读取ConnectionStrings指定Name的ConnectionString
        /// 
        /// 
        public string ReadConnectionString(string name)
        {
            var connectionStrings = _configuration.ConnectionStrings.ConnectionStrings;
            return connectionStrings[name].ConnectionString;
        }

        /// 
        /// 修改ConnectionStrings指定Name的值(没有就添加)
        /// 
        /// 
        /// 
        public bool AddUpdateConnectionString(string name, string connectionString, bool noToAdd = true)
        {
            var connectionStrings = _configuration.ConnectionStrings.ConnectionStrings;
            if (connectionStrings[name] == null)
            {
                if (noToAdd)  //没有就添加
                {
                    connectionStrings.Add(new ConnectionStringSettings(name, connectionString));
                }
                else
                {
                    return false;
                }
            }
            else
            {
                connectionStrings[name].ConnectionString = connectionString;
            }
            _configuration.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection(_configuration.ConnectionStrings.SectionInformation.Name);
            return true;
        }

        /// 
        /// 移除ConnectionStrings指定Name
        /// 
        /// 
        /// 
        public bool RemoveConnectionString(string name)
        {
            var connectionStrings = _configuration.ConnectionStrings.ConnectionStrings;
            if (connectionStrings[name] == null)
            {
                return false;
            }
            connectionStrings.Remove(name);
            _configuration.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection(_configuration.ConnectionStrings.SectionInformation.Name);
            return true;
        }


    }

 

你可能感兴趣的:(C#)