C#配置文件的读写操作
public class AppConfigHelper
{
Configuration _configuration;
/// <summary>
/// 打开当前的config
/// </summary>
public AppConfigHelper()
{
_configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
}
/// <summary>
/// 打开指定路径的config
/// </summary>
/// <param name="path"></param>
public AppConfigHelper(string path)
{
_configuration = ConfigurationManager.OpenExeConfiguration(path);
}
/// <summary>
/// 读取所有的AppSettings
/// </summary>
/// <returns></returns>
public Dictionary<string, string> ReadAllSettings()
{
Dictionary<string, string> dictKV = new Dictionary<string, string>();
var settings = _configuration.AppSettings.Settings;
foreach (string key in settings.AllKeys)
{
dictKV[key] = settings[key].Value;
}
return dictKV;
}
/// <summary>
/// 读取AppSettings指定Key的Value
/// </summary>
/// <param name="key"></param>
public string ReadSetting(string key)
{
var settings = _configuration.AppSettings.Settings;
return settings[key].Value;
}
/// <summary>
/// 修改AppSettings指定Key的值(没有就添加)
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
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;
}
/// <summary>
/// 移除AppSettings指定Key
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 读取所有的ConnectionStrings
/// </summary>
/// <returns></returns>
public Dictionary<string, string> ReadConnectionStrings()
{
Dictionary<string, string> dictKV = new Dictionary<string, string>();
var connectionStrings = _configuration.ConnectionStrings.ConnectionStrings;
foreach (ConnectionStringSettings key in connectionStrings)
{
dictKV[key.Name] = connectionStrings[key.Name].ConnectionString;
}
return dictKV;
}
/// <summary>
/// 读取ConnectionStrings指定Name的ConnectionString
/// </summary>
/// <param name="name"></param>
public string ReadConnectionString(string name)
{
var connectionStrings = _configuration.ConnectionStrings.ConnectionStrings;
return connectionStrings[name].ConnectionString;
}
/// <summary>
/// 修改ConnectionStrings指定Name的值(没有就添加)
/// </summary>
/// <param name="name"></param>
/// <param name="connectionString"></param>
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;
}
/// <summary>
/// 移除ConnectionStrings指定Name
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
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;
}
}