Простейший файл 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 во время выполнения
В : Предположим, я вручную изменил некоторые данные <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 Core. Способ работы файлов * .config, по-видимому, не изменился, но разработчики могут выбирать новые, более гибкие парадигмы конфигурации.