Config操作类
using System;
using System.Configuration;
public sealed class Config { #region appSettings节点 /// <summary> /// 获取配置文件指定的值 /// </summary> /// <param name="key">健</param> /// <param name="defaultvalue">值为Null时返回的默认值</param> /// <returns>健对应的值,如果为Null返回默认值</returns> public static string GetConfig(string key, string defaultvalue) { string _value = GetConfig(key); return string.IsNullOrEmpty(_value) ? defaultvalue : _value; } /// <summary> /// 获取配置文件指定的值 /// </summary> /// <param name="key">健</param> /// <returns>健对应的值</returns> public static string GetConfig(string key) { return string.IsNullOrEmpty(ConfigurationManager.AppSettings[key]) ? string.Empty : ConfigurationManager.AppSettings[key]; } /// <summary> /// appSettings节点下是否存在某健 /// </summary> /// <param name="key"></param> /// <returns></returns> public static bool IsExistKey(string key) { return !string.IsNullOrEmpty(key) && ConfigurationManager.AppSettings[key] != null; } /// <summary> /// 对appSettings节点添加健值 /// 如果健已经存在则更改值 /// 添加后重新保存 /// </summary> /// <param name="key">添加的健</param> /// <param name="key">添加的值</param> public static void AddConfig(string key, string value) { if (string.IsNullOrEmpty(key)) return; Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); if (IsExistKey(key)) configuration.AppSettings.Settings[key].Value = value; else configuration.AppSettings.Settings.Add(key, value); try { configuration.Save(); } catch (Exception) { throw; } ConfigurationManager.RefreshSection("appSettings"); } #endregion #region connectionStrings节点 /// <summary> /// ConnectionStrings.Count /// </summary> /// <returns></returns> public static int GetConnsCount { get { return ConfigurationManager.ConnectionStrings.Count; } } /// <summary> /// 读取数据库配置文件(connectionStrings节点) /// </summary> /// <param name="key">健名</param> /// <returns></returns> public static string GetConfigConn(string key) { return !string.IsNullOrEmpty(key) && ConfigurationManager.ConnectionStrings[key] != null ? ConfigurationManager.ConnectionStrings[key].ConnectionString : string.Empty; } /// <summary> /// 健不存在或值为Null /// </summary> /// <param name="key">健名</param> /// <returns></returns> public static bool GetConfigConnIsNull(string key) { return string.IsNullOrEmpty(key) || ConfigurationManager.ConnectionStrings[key] == null || string.IsNullOrEmpty(ConfigurationManager.ConnectionStrings[key].ConnectionString); } /// <summary> /// 保存配置数据库连接字符串 /// 如果不存在连接字符串,则创建并设置字符串 /// </summary> /// <param name="key">要操作的节点</param> /// <param name="value">值</param> public static void SaveConfigConn(string key, string value) { if (string.IsNullOrEmpty(key)) return; Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); if (configuration.ConnectionStrings.ConnectionStrings[key] == null) configuration.ConnectionStrings.ConnectionStrings.Add(new ConnectionStringSettings(key, value)); else { foreach (ConnectionStringSettings conn in configuration.ConnectionStrings.ConnectionStrings) { if (conn.Name != key||conn.ConnectionString==value) continue; conn.ConnectionString = value; break; } } try { configuration.Save(); } catch (Exception) { throw; } ConfigurationManager.RefreshSection("connectionStrings"); } #endregion }