В app.config клиента прописаны ссылки на webservices.
Сейчас возникла новая задача, что в зависимости от условий серверов может быть два.
И с каким из них мы работаем определяется при запуске программы. Как можно перезаписать значения в app.config?
Таким образом, чтобы в System.Configuration.ConfigurationSettings.AppSettings также были новые значения?
Здравствуйте, Ellin, Вы писали:
E>В app.config клиента прописаны ссылки на webservices.
E>Сейчас возникла новая задача, что в зависимости от условий серверов может быть два.
E>И с каким из них мы работаем определяется при запуске программы. Как можно перезаписать значения в app.config?
E>Таким образом, чтобы в System.Configuration.ConfigurationSettings.AppSettings также были новые значения?
AppSettings можно менять в runtime так:
ExeConfiguration = ConfigurationManager.OpenExeConfiguration(exePath);
var appSection = (AppSettingsSection) ExeConfiguration.GetSection("appSettings");
UpdateAppSection(appSection, "app_key", "app_value");
// обязательно
ExeConfiguration.Save();
private void UpdateAppSection(AppSettingsSection appSection, string key, string value)
{
if (value == null)
{
value = string.Empty;
}
if (appSection != null)
{
if (appSection.Settings[key] == null)
{
appSection.Settings.Add(key, value);
}
else
{
appSection.Settings[key].Value = value;
}
}
}