Salve e recarregue app.config (applicationSettings) no tempo de execução
Eu armazenei a configuração do meu aplicativo no app.config, pelo Visual Studio. Criei alguma chave de aplicativo na guia configurações da caixa de diálogo de propriedades do projeto, depois defini essa chave no nível do aplicativo (NÃO no nível do usuário) .
@Visual Studio gera automaticamente o seguinte arquivo xml (app.config):
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="AleTest.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<AleTest.Properties.Settings>
<setting name="DatabasePath" serializeAs="String">
<value>Test.s3db</value>
</setting>
<setting name="DatabaseUser" serializeAs="String">
<value />
</setting>
<setting name="DatabasePass" serializeAs="String">
<value />
</setting>
</AleTest.Properties.Settings>
</applicationSettings>
</configuration>
Agora eu quero salvar e recarregar as configurações em tempo de execução, aqui está o meu código que permite salvar o valorDatabasePath
no arquivo de configuração:
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ConfigurationSectionGroup applicationSectionGroup = config.GetSectionGroup("applicationSettings");
ConfigurationSection applicationConfigSection = applicationSectionGroup.Sections["AleTest.Properties.Settings"];
ClientSettingsSection clientSection = (ClientSettingsSection)applicationConfigSection;
//Database Configuration Setting
SettingElement applicationSetting = clientSection.Settings.Get("DatabasePath");
applicationSetting.Value.ValueXml.InnerXml = this.textBoxPath.Text.Trim();
applicationConfigSection.SectionInformation.ForceSave = true;
config.Save();
O problema é que, com este código, as novas configurações não são carregadas pelo aplicativo até eu reiniciar o aplicativo; existe uma maneira de recarregar as definições de configuração em tempo de execução?
Também quero substituir o valor fixo do nome deapplicationSettings
section (AleTest.Properties.Settings) com um valor variável, existe uma variável na estrutura que assume esse valor (AleTest.Properties.Settings)?