using System.Configuration; using System.Linq; namespace CK.SCP.Utils { public static class AppConfigHelper { /// <summary> /// 获取AppSettings配置节中的Key值 /// </summary> /// <param name="keyName">Key's name</param> /// <returns>Key's value</returns> public static string GetAppValue(string keyName) { return ConfigurationManager.AppSettings.Get(keyName); } /**/ /// <summary> /// 获取ConnectionStrings配置节中的值 /// </summary> /// <returns></returns> public static string GetConnectionString() { var settings = ConfigurationManager.ConnectionStrings["ConnString"]; return settings.ConnectionString; } /**/ /// <summary> /// 保存节点中ConnectionStrings的子节点配置项的值 /// </summary> /// <param name="strConn"></param> public static void SetConnectionString(string strConn) { var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); config.ConnectionStrings.ConnectionStrings["ConnString"].ConnectionString = strConn; config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("connectionStrings"); } /**/ /// <summary> /// 判断appSettings中是否有此项 /// </summary> private static bool IsAppKeyExists(string strKey, Configuration config) { return config.AppSettings.Settings.AllKeys.Any(str => str == strKey); } /**/ /// <summary> /// 保存appSettings中某key的value值 /// </summary> /// <param name="strKey">key's name</param> /// <param name="newValue">value</param> public static void SetAppValue(string strKey, string newValue) { var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); if (!IsAppKeyExists(strKey, config)) return; config.AppSettings.Settings[strKey].Value = newValue; config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); } } }