Ответ 1
В своем простейшем случае app.config представляет собой XML файл с множеством предопределенных разделов конфигурации и поддерживает настраиваемые разделы конфигурации. Раздел "Конфигурация" представляет собой фрагмент XML со схемой, предназначенной для хранения некоторого типа информации.
Настройки можно настроить с помощью встроенных конфигурационных разделов, таких как connectionStrings
или appSettings
. Вы можете добавить свои собственные разделы конфигурации; это расширенная тема, но очень мощная для создания файлов с типизированной типизацией.
Веб-приложения обычно имеют файл web.config, в то время как графические пользовательские приложения Windows имеют файл app.config.
Конфигурационные файлы на уровне приложения наследуют настройки из глобальных файлов конфигурации, например. machine.config.
Чтение из App.Config
Строки подключения имеют предопределенную схему, которую вы можете использовать. Обратите внимание, что этот небольшой фрагмент фактически является допустимым файлом app.config(или web.config):
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="MyKey"
connectionString="Data Source=localhost;Initial Catalog=ABC;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
После того, как вы определили свой app.config, вы можете прочитать его в коде, используя класс ConfigurationManager. Не пугайтесь подробных примеров MSDN; это на самом деле довольно просто.
string connectionString = ConfigurationManager.ConnectionStrings["MyKey"].ConnectionString;
Запись в App.Config
Частое изменение файлов *.config обычно не является хорошей идеей, но похоже, что вы хотите только выполнить одноразовую настройку.
Смотрите: Измените строку подключения и перезагрузите app.config во время выполнения, в котором описывается, как обновить раздел connectionStrings
файла *.config во время выполнения.
Обратите внимание, что в идеале вы должны выполнить такие изменения конфигурации от простого установщика.
Расположение App.Config во время выполнения
Q. Предположим, что я вручную изменяю некоторые <value>
в app.config, сохраняю его и закрываю. Теперь, когда я перехожу в папку bin и запускаю файл .exe отсюда, почему он не отражает внесенные изменения?
A. При компиляции приложения его файл app.config копируется в каталог bin 1 с именем, соответствующим вашему exe. Например, если ваш exe был назван "test.exe", в каталоге bin должен быть "text.exe.config". Вы можете изменить конфигурацию без перекомпиляции, но вам нужно будет отредактировать файл конфигурации, который был создан во время компиляции, а не оригинальный файл app.config.
1: Обратите внимание, что файлы web.config не перемещаются, а остаются в том же месте во время компиляции и развертывания. Единственное исключение - когда web.config преобразован.
.NET Core
В .NET Framework были введены новые параметры конфигурации. Способ работы файлов *.config, похоже, не изменился, но разработчики могут выбирать новые, более гибкие парадигмы конфигурации.