Вы можете открыть свой файл Web.Config для чтения и записи, используя WebConfigurationManager.OpenWebConfiguration
или WebConfigurationManager.OpenMappedWebConfiguration
. И если у вас есть разрешение на запись, вы сможете вносить изменения, такие как изменение строки подключения.
Это, безусловно, должно быть лучше, чем использование отражения для изменения частного поля.
После изменения web.config веб-приложение будет перезапущено, поэтому оно не позволяет пользователям вносить изменения в web.config, хотя его можно использовать в определенных сценариях, например при развертывании.
Пример:
var configurationFileInfo = new FileInfo(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
var vdm = new VirtualDirectoryMapping(configurationFileInfo.DirectoryName, true, configurationFileInfo.Name);
var wcfm = new WebConfigurationFileMap();
wcfm.VirtualDirectories.Add("/", vdm);
Configuration config = WebConfigurationManager.OpenMappedWebConfiguration(wcfm, "/");
ConnectionStringsSection section = config.GetSection("connectionStrings")
as ConnectionStringsSection;
if (section != null)
{
... modify the section ...
config.Save();
}