2015-08-13 3 views
0

У меня есть следующий фрагмент кода. Каждый раз, когда я запускаю проект C#, добавляются значения для ключа настроек приложения.ConfigurationManager.AppSettings.Settings.Add() добавляет значение при каждом запуске

var configSettings = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
configSettings.AppSettings.Settings.Add("Key", "Value"); 
configSettings.Save(ConfigurationSaveMode.Full, true); 
ConfigurationManager.RefreshSection("appSettings"); 

первый запуск: Ключ: Значение

второй запуск: Key, Value, Value

Почему значения получения добавляются? Мне нужно, чтобы он начинался с чистой плиты на каждом прогоне.

+0

этот код выполняется в global.asax? – Yousuf

ответ

1

Вам необходимо проверить, существует ли приложение AppSetting. Если он существует, вам необходимо обновить значение. Если это не так, вам нужно добавить значение.

var configSettings = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
var settings = configSettings.AppSettings.Settings; 
if (settings["Key"] == null) 
{ 
    settings.Add("Key", "Value"); 
} 
else 
{ 
    settings["Key"].Value = "NewValue"; 
} 
configSettings.Save(ConfigurationSaveMode.Full, true); 
ConfigurationManager.RefreshSection("appSettings"); 

AppSettings.Settings в основном набор пар ключ/значение.

Для получения более подробной информации ознакомьтесь с документацией MSDN ниже.

https://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings(v=vs.110).aspx

https://msdn.microsoft.com/en-us/library/system.configuration.appsettingssection.settings(v=vs.110).aspx

Смежные вопросы