Можно ли перенастроить конфигурацию приложения после вызова «CreateDefaultBuilder»? - PullRequest
0 голосов
/ 08 июня 2018

В CreateDefaultBuilder выполняется вызов ConfigureAppConfiguration с некоторыми значениями по умолчанию.Я хотел бы переопределить (или добавить) эти значения по умолчанию.Я попытался скопировать CreateDefaultBuilder в свою собственную функцию и отредактировать соответствующие строки, однако он не может разрешить тип, используемый в функции, потому что тип internal в пространствах имен AspNetCore (в частности, тип HostFilteringStartupFilter).

Есть ли какой-нибудь более понятный способ изменить функциональность CreateDefaultBuilder?

РЕДАКТИРОВАТЬ: Итак, я только что посмотрел на источник HostFilteringStartupFilter и он просто вызывает UseHostFiltering на IApplicationBuilder, поэтому я только добавил это к своему Startup.Configure, но я все еще хотел бы более чистый подход, если возможно ..

1 Ответ

0 голосов
/ 04 июня 2019

CreateDefaultBuilder устанавливает разумные значения по умолчанию, которые вы хотите сохранить, кроме части конфигурации.CreateDefaultBuilder выполняет следующие настройки конфигурации:

  1. appsettings.json
  2. appsettings. {Environment} .json
  3. Secret Manager (если среда разработки)
  4. Переменные окружения.
  5. Аргументы командной строки.

Знание этого уровня по умолчанию, тот факт, что каждый слой потенциально может переопределять значения в предыдущих, и тот факт, что вы можете только добавить конфигурациюпоставщиков в списке (хотя они не могут удалить их), теперь вы можете решить свою проблему.

Переопределение конфигурации поверх CreateDefaultBuilder выполняется с помощью ConfigureAppConfiguration:

    WebHost.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration((hostingContext, config) =>
        {
            // Override here specifying new or previous layers to make sure 
            // you get the desired outcome.
            // e.g. If you specify your appsettings.json you basically start from scratch
            ...

        })...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...