Но я использую это для доступа к параметру: string test = Properties.Settings.Default.MyString; MessageBox.Show ("Paramètres / Settings MyString =" + test);
ранил конфигурацию своего приложения в app.config. Visual Studio создал ключ приложения на вкладке настроек в диалоговом окне свойств проекта, затем я установил этот ключ на уровне приложения (НЕ на уровне пользователя).
Visual Studio автоматически создает следующий 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>
Теперь я хочу сохранить и перезагрузить настройки во время выполнения, вот мой код, который позволяет сохранить значениеDatabasePath
в файле конфигурации:
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();
Проблема в том, что с этим кодом новые настройки не загружаются приложением, пока я не перезапущу приложение; Есть ли способ перезагрузить настройки конфигурации во время выполнения?
Я также хочу заменить фиксированное значение имениapplicationSettings
раздел (AleTest.Properties.Settings) со значением переменной, существует ли переменная в структуре, принимающая это значение (AleTest.Properties.Settings)?