Работа с файлом конфигурации (configuration) в C# - читаем и сохраняем

Простейший файл конфигурации создается через интерфейс студии (Решение - добавить элемент) и имеет следующую структуру.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="server" value="SOME_SERVER_NAME" />
    <add key="database" value="SOME_DATABASE_NAME" />
  </appSettings>
</configuration>

По умолчанию в проекте он виден как App.config, в папке с программой как Имя_исполняемого_файла.exe.config. При отладке Visual Studio создает копии исполняемого файла и файла конфигурации, так что запись в конфиг работать не будет. Точнее говоря конфиг будет сбрасываться при каждом запуске.

Для работы с ним надо в References импортировать библиотеку System.Configuration и прописать ее в using

Базовый код для чтения параметра совсем прост

_serverTextBox.Text = ConfigurationManager.AppSettings["server"];

Для изменения чуть сложнее

System.Configuration.Configuration currentConfig = ConfigurationManager. OpenExeConfiguration( ConfigurationUserLevel.None);
currentConfig.AppSettings.Settings["server"].Value = _serverTextBox.Text;
currentConfig.AppSettings.Settings["database"].Value = _serverTextBox.Text;
currentConfig.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");

Напоследок несколько экзотический сценарий - проверка наличия раздела в конфиге и его создание в случае отсуствия

if (!ConfigurationManager.AppSettings.AllKeys.Contains("someParameter"))
{
	// открываем текущий конфиг специальным обьектом
	System.Configuration.Configuration currentConfig = ConfigurationManager. OpenExeConfiguration( ConfigurationUserLevel. None );
	// добавляем позицию в раздел AppSettings
	currentConfig.AppSettings.Settings.Add("someParameter", "");
	//сохраняем
	currentConfig.Save(ConfigurationSaveMode.Full);
	//принудительно перезагружаем соотвествующую секцию
	ConfigurationManager.RefreshSection("appSettings");
}

Комментарии

Работа с файлом конфигурации (configuration) в C# - читаем и сохраняем — Комментарии (9)

  1. Подскажите пожалуйста, как с помощью app.config хранить приватные и публичные ключи (условие задачи). Суть в том ,что есть два приложения одно шифрует строку и записывает файл , второе считывает и расшифровывает. Не могли бы Вы привести пример передачи ключей RSA

Добавить комментарий для wpavelet Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>