Хранение настроек в конфиге

26.08.2015 at 07:12


Для того, чтобы хранить настройки в конфиге, нужно добавить в него секцию appSettings и уже в нее добавлять свои настройки. Например вот так добавится настройка LogPath:

<?xml version="1.0"?>
<configuration>
  <appSettings>
    <add key="LogPath" value="C:\logs\" />
  </appSettings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>

Для чтения и записи настроек добавляем вот такие методы:

private string LoadSettingValue(string settingName)
{
    var results = ConfigurationManager.AppSettings.GetValues(settingName);
    if (results != null)
	    return results.FirstOrDefault();
    else
	    return string.Empty;
}

private void SaveSettingValue(string settingName, string settingValue)
{
    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    AppSettingsSection app = config.AppSettings;
    if (app.Settings.AllKeys.Contains(settingName))
    	app.Settings.Remove(settingName);
    app.Settings.Add(settingName, settingValue);
    config.Save(ConfigurationSaveMode.Modified);
}