Имеющихся провайдеров конфигурации в ASP.NET Core вполне достаточно, чтобы покрыть максимум потребностей разработчиков. При этом, возможны ситуации, когда готовых провайдеров может не хватить. Например, нам может потребоваться получать конфигурацию из файла совершенно уникального формата или, наоборот, создать свой уникальный формат хранения конфигурации.
Конфигурация приложения ASP.NET Core
Проекция конфигурации на классы
При использовании разветвленной конфигурации приложения, например, в json-файлах с множеством параметров и секций бывает не всегда удобно использовать последовательный доступ к каждой настройке, используя индексатор IConfiguration
. В ASP.NET Core может использоваться проекция конфигурации на классы C#, чтобы представить сложную иерархическую структуру конфигурации приложения в виде обычного объекта. Для этого мы можем использовать методы Get<T>()
и Bind()
.
Секреты пользователей
Ещё один способ конфигурации приложения ASP.NET Core – использование секретов пользователя. Под термином «секрет пользователя» понимаются любые конфиденциальные данные. Например, когда мы разрабатываем приложение, то нам может потребоваться логины и пароли пользователей базы данных, наделенных различными правами, пароли и ключи доступа к сторонним API и так далее – это всё относится к секретам пользователя.
Нефайловые провайдеры конфигурации
Нефайловые провайдеры конфигурации в ASP.NET Core представлены следующими классами:
MemoryConfigurationProvider
– использует коллекцию в памяти в качестве настроек приложенияCommandLineConfigurationProvider
– загружает конфигурацию из аргументов командной строкиEnvironmentVariablesConfigurationProvider
– загружает настройки приложения из переменных среды.
Файловые провайдеры конфигурации
По умолчанию, в ASP.NET Core используется конфигурация приложения с использованием файлов JSON, однако, при желании, конфигурацию приложения можно определить и в других типах файлов, например, XML, INI или даже определить собственный формат файла конфигурации и использовать его.
Общие сведения о конфигурации (интерфейсы IConfiguration и IConfigurationBuilder)
Под конфигурацией приложения обычно понимаются какие-либо настройки, применяемые, например, при запуске приложения. Это могут быть такие настройки, как строки подключения к базам данных, настройки оформления приложения, включение дополнительных опций и т. д.