using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Configuration; namespace AutoUpdater.Lib { public static class ConfigHelper { /// /// 依据连接串名字connectionName返回数据连接字符串 /// /// 配置文件 /// ConnectionStrings连接名 /// public static string GetConnectionStringsConfig(string ConfigFilePath, string connectionName) { //指定config文件读取 ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap { ExeConfigFilename = ConfigFilePath }; Configuration _Configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); string connectionString = _Configuration.ConnectionStrings.ConnectionStrings[connectionName].ConnectionString; return connectionString; } /// ///更新连接字符串 /// ///连接字符串名称 ///连接字符串内容 ///数据提供程序名称 public static void UpdateConnectionStringsConfig(string ConfigFilePath, string newName, string newConString, string newProviderName) { //指定config文件读取 ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap { ExeConfigFilename = ConfigFilePath }; Configuration _Configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); bool exist = false; //记录该连接串是否已经存在 //如果要更改的连接串已经存在 if (_Configuration.ConnectionStrings.ConnectionStrings[newName] != null) { exist = true; } // 如果连接串已存在,首先删除它 if (exist) { _Configuration.ConnectionStrings.ConnectionStrings.Remove(newName); } //新建一个连接字符串实例 ConnectionStringSettings mySettings = new ConnectionStringSettings(newName, newConString, newProviderName); // 将新的连接串添加到配置文件中. _Configuration.ConnectionStrings.ConnectionStrings.Add(mySettings); // 保存对配置文件所作的更改 _Configuration.Save(ConfigurationSaveMode.Modified); // 强制重新载入配置文件的ConnectionStrings配置节 ConfigurationManager.RefreshSection("ConnectionStrings"); } /// ///返回*.exe.config文件中appSettings配置节的value项 /// /// /// public static string GetAppConfig(string ConfigFilePath, string Key) { ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap { ExeConfigFilename = ConfigFilePath }; Configuration _Configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); if (_Configuration.AppSettings.Settings[Key] == null) { return ""; } else { return _Configuration.AppSettings.Settings[Key].Value; } } /// ///在*.exe.config文件中appSettings配置节增加一对键值对 /// /// /// public static void UpdateAppConfig(string ConfigFilePath, string Key, string Value) { ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap { ExeConfigFilename = ConfigFilePath }; Configuration _Configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); if (_Configuration.AppSettings.Settings[Key] == null) { _Configuration.AppSettings.Settings.Add(Key, Value); } else { _Configuration.AppSettings.Settings[Key].Value = Value; } _Configuration.Save(); ConfigurationManager.RefreshSection("appSettings"); } } }