【C#日常积累】C# 应用程序配置文件App.Config 基本使用

前言

       今天分享一个,在系统程序开发过程中少不了的配置文件操作类,用于读取和修改App.config的程序配置,话不多说,真奔主题开干。

首先添加System.configuration引用



     
        
    

  
  
    
    
    
  
  
  
    
  

操作帮助类

public class ConfigHelper
    {
        /// 
        ///获取数据库配置节点connectionName
        /// 
        /// 
        /// 
        public static string GetConnectionStringsConfig(string connectionName)
        {
            string connectionString =
                    ConfigurationManager.ConnectionStrings[connectionName].ConnectionString.ToString();
            return connectionString;
        }
        /// 
        ///更新连接字符串  
        /// 
        ///连接字符串名称 
        ///连接字符串内容 
        ///数据提供程序名称 
        public static void UpdateConnectionStringsConfig(string newName, string newConString, string newProviderName)
        {
            bool isModified = false; //记录该连接串是否已经存在  
                                     //如果要更改的连接串已经存在  
            if (ConfigurationManager.ConnectionStrings[newName] != null)
            {
                isModified = true;
            }
            //新建一个连接字符串实例  
            ConnectionStringSettings mySettings =
                new ConnectionStringSettings(newName, newConString, newProviderName);
            // 打开可执行的配置文件*.exe.config  
            Configuration config =
                ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            // 如果连接串已存在,首先删除它  
            if (isModified)
            {
                config.ConnectionStrings.ConnectionStrings.Remove(newName);
            }
            // 将新的连接串添加到配置文件中.  
            config.ConnectionStrings.ConnectionStrings.Add(mySettings);
            // 保存对配置文件所作的更改  
            config.Save(ConfigurationSaveMode.Modified);
            // 强制重新载入配置文件的ConnectionStrings配置节  
            ConfigurationManager.RefreshSection("ConnectionStrings");
        }

        ///  
        ///appSettings配置节增加一对键、值对  
        ///  
        ///  
        ///  
        public static void UpdateAppConfig(string newKey, string newValue)
        {

            bool isModified = false;
            foreach (string key in ConfigurationManager.AppSettings)
            {
                if (key == newKey)
                {
                    isModified = true;
                }
            }

            // 打开应用程序配置文件 
            Configuration config =
                ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            //删除对象
            if (isModified)
            {
                config.AppSettings.Settings.Remove(newKey);
            }
            // 添加节点
            config.AppSettings.Settings.Add(newKey, newValue);
            // 保存app.config文件
            config.Save(ConfigurationSaveMode.Modified);
            //强制重新加载
            ConfigurationManager.RefreshSection("appSettings");
        }

        /// 
        /// 根据键值获取配置文件
        /// 
        /// 键值
        /// 
        public static string GetConfig(string key)
        {
            string val = string.Empty;
            if (ConfigurationManager.AppSettings.AllKeys.Contains(key))
                val = ConfigurationManager.AppSettings[key];
            return val;
        }

        /// 
        /// 获取所有配置文件
        /// 
        /// 
        public static Dictionary GetConfig()
        {
            Dictionary dict = new Dictionary();
            foreach (string key in ConfigurationManager.AppSettings.AllKeys)
                dict.Add(key, ConfigurationManager.AppSettings[key]);
            return dict;
        }

        /// 
        /// 根据键值获取配置文件
        /// 
        /// 键值
        /// 默认值
        /// 
        public static string GetConfig(string key, string defaultValue)
        {
            string val = defaultValue;
            if (ConfigurationManager.AppSettings.AllKeys.Contains(key))
                val = ConfigurationManager.AppSettings[key];
            if (val == null)
                val = defaultValue;
            return val;
        }

        /// 
        /// 写配置文件,如果节点不存在则自动创建
        /// 
        /// 键值
        /// 值
        /// 
        public static bool SetConfig(string key, string value)
        {
            try
            {
                Configuration conf = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                if (!conf.AppSettings.Settings.AllKeys.Contains(key))
                    conf.AppSettings.Settings.Add(key, value);
                else
                    conf.AppSettings.Settings[key].Value = value;
                conf.Save();
                return true;
            }
            catch { return false; }
        }

        /// 
        /// 写配置文件(用键值创建),如果节点不存在则自动创建
        /// 
        /// 键值集合
        /// 
        public static bool SetConfig(Dictionary dict)
        {
            try
            {
                if (dict == null || dict.Count == 0)
                    return false;
                Configuration conf = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                foreach (string key in dict.Keys)
                {
                    if (!conf.AppSettings.Settings.AllKeys.Contains(key))
                        conf.AppSettings.Settings.Add(key, dict[key]);
                    else
                        conf.AppSettings.Settings[key].Value = dict[key];
                }
                conf.Save();
                return true;
            }
            catch { return false; }
        }

    }

 

你可能感兴趣的:(C#日常积累)