Позволяет ли ASP.NET Core читать ВЕСЬ файл appsettings.json за один вызов одного класса? ⇐ C#
Позволяет ли ASP.NET Core читать ВЕСЬ файл appsettings.json за один вызов одного класса?
Я вручную прочитал все разделы моей конфигурации (например, appsettings.json, переменные окружения, секреты и т. д.), читая каждый «раздел» один за другим. Отлично работает.
Но можно ли просто предоставить один класс (который имеет «дочерние» свойства, представляющие каждый раздел и т. д.) и загрузить в него значения конфигурации за один вызов?
Вот пример того, что я могу сделать, по разделам:
публичный класс DatabaseSettings { public const string DatabaseSettingsSectionKey = "Базы данных"; общественная строка SqlServerConnectionString {get; набор; } общедоступная строка AzureStorageConnectionString {get; набор; } } общественный класс { .. } общественный класс { .. } общественный класс { .. } общедоступный статический IServiceCollection AddConfigurationOptions (это службы IServiceCollection) { var DatabaseSettings = службы .AddOptions() .Configure((настройки, конфигурация) => { конфигурация .GetSection(DatabaseSettings.DatabaseSettingsSectionKey) .Bind(настройки); }) .ValidateOnStart(); // Загружаем раздел 2 // Загружаем раздел 3 // Загрузка раздела 'n' ... услуги возврата; } Вместо этого я хотел бы сделать:
публичный класс ApplicationSettings { общедоступные базы данных DatabaseSettings {get; набор; } общественный NextSettings Nexts {get; набор; } общественный AnotherSettings Others {get; набор; } .... } Возможно ли это?
Я вручную прочитал все разделы моей конфигурации (например, appsettings.json, переменные окружения, секреты и т. д.), читая каждый «раздел» один за другим. Отлично работает.
Но можно ли просто предоставить один класс (который имеет «дочерние» свойства, представляющие каждый раздел и т. д.) и загрузить в него значения конфигурации за один вызов?
Вот пример того, что я могу сделать, по разделам:
публичный класс DatabaseSettings { public const string DatabaseSettingsSectionKey = "Базы данных"; общественная строка SqlServerConnectionString {get; набор; } общедоступная строка AzureStorageConnectionString {get; набор; } } общественный класс { .. } общественный класс { .. } общественный класс { .. } общедоступный статический IServiceCollection AddConfigurationOptions (это службы IServiceCollection) { var DatabaseSettings = службы .AddOptions() .Configure((настройки, конфигурация) => { конфигурация .GetSection(DatabaseSettings.DatabaseSettingsSectionKey) .Bind(настройки); }) .ValidateOnStart(); // Загружаем раздел 2 // Загружаем раздел 3 // Загрузка раздела 'n' ... услуги возврата; } Вместо этого я хотел бы сделать:
публичный класс ApplicationSettings { общедоступные базы данных DatabaseSettings {get; набор; } общественный NextSettings Nexts {get; набор; } общественный AnotherSettings Others {get; набор; } .... } Возможно ли это?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение