Как программно изменить информацию в файле настроек (app.config) в приложении C # windows? - PullRequest
1 голос
/ 07 января 2012

Мы разрабатываем среду приложения .net 4 для Windows на базе C #. В моем приложении я хочу обновлять атрибут файла настроек (app.config) программно. На самом деле мы создали один пользовательский интерфейс (текстовое поле). Итак, пользователь введет новыйИнформация о конфигурации в текстовом поле. Когда я нажимаю кнопку «Сохранить», я хочу постоянно обновлять это значение в файле настроек.

, например:

В моем файле настроек есть Ключ шифрования. Предположим, пользовательможет ввести новый ключ шифрования с помощью этого интерфейса, после чего он автоматически обновит файл настроек. Значение ключа шифрования.

Возможно ли это?

Ответы [ 4 ]

4 голосов
/ 07 января 2012

Прежде всего вы должны добавить эту ссылку: System.Configuration, затем вы можете написать в app.config, например, с помощью этого кода:

        Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

        ConfigurationSectionGroup applicationSectionGroup = config.GetSectionGroup("applicationSettings");
        ConfigurationSection applicationConfigSection = applicationSectionGroup.Sections["YourApp.Properties.Settings"];
        ClientSettingsSection clientSection = (ClientSettingsSection)applicationConfigSection;

        //Encryption Key Configuration Setting
        SettingElement applicationSetting = clientSection.Settings.Get("EncryptionKey");
        applicationSetting.Value.ValueXml.InnerXml = this.textBoxKey.Text.Trim();

        applicationConfigSection.SectionInformation.ForceSave = true;
        config.Save();

        ConfigurationManager.RefreshSection("applicationSettings");

Имейте в виду, что вы должны создать файл app.config прежде с помощью мастера Visual Studio, в этом примере я назвал поле для ключа шифрования: EncryptionKey и соответствующее текстовое поле в форме: textBoxKey .

1 голос
/ 07 января 2012

Лучший способ отредактировать файл app.config - создать проект установки.

Проект установки будет запущен с правами администратора и ему будет разрешено писать в папку с файлами программы.Запись в папку программных файлов обычными обычными пользователями не разрешена.

Во время установки вы можете собирать информацию от пользователей о значениях, которые должны быть установлены в файле конфигурации, и вы можете искать правильную папку.

Обратите внимание, что если вы хотите изменить настройки для каждого пользователя, вы не столкнетесь с этой проблемой, потому что настройки пользователя записаны в профиле пользователя.

0 голосов
/ 22 марта 2013

Это может помочь

        Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
        AppSettingsSection appsettings = (AppSettingsSection)config.GetSection("appSettings");
        appsettings.Settings["Key"].Value = "value";
        config.Save(ConfigurationSaveMode.Modified);
0 голосов
/ 07 января 2012

Вы хотите редактировать файл конфигурации во время выполнения?Это возможно.Используйте класс ConfigurationManager из сборки System.Configuration (добавьте ссылку на него).Вы можете получить любой раздел, например, appSettings, и изменить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...