2016-10-27 3 views
0

В типичном приложении ASP.NET Core метод Main создает конфигурацию и передает ее в WebHostBuilder. Есть ли способ получить доступ к этой конфигурации внутри любого из методов Startup (например, Configure или ConfigureServices)?Доступ к конфигурации хоста в методах запуска ядра ASP.NET

Мне нужна эта конфигурация, потому что она имеет доступ к аргументам командной строки.

Благодаря

Pedro

+0

Все необходимые сведения здесь: https://docs.asp.net/en/latest /fundamentals/configuration.html. –

ответ

0

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

public IConfigurationRoot Configuration { get; set; } 

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

var builder = new ConfigurationBuilder() 
      .AddEnvironmentVariables(); 

var anotherConfiguration = builder.Build(); 
+0

Свойство «Startup.Configuration» должно быть статическим, так как у нас нет доступа к экземпляру «Startup» в методе «Главная», правильно? –

+0

@PedroFelix обновил ответ, должен быть более ясен прямо сейчас. Что касается статики - вы должны избегать такого шаблона, поскольку это усложнит модульное тестирование. – Set

+0

@PedroFelix. Проверьте [Пример MusicStore] (https://github.com/aspnet/MusicStore/blob/dev/samples/MusicStore/Startup.cs#L28), чтобы увидеть, как (и где) вы обычно сохраняете объект конфигурации. – poke

Смежные вопросы