Я пытаюсь передать аргументы командной строки классу Startup
. После this пример, я изменил мой Program
класс, и это выглядит следующим образом:Почему Startup's IConfigurationRoot имеет значение null?
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("generalsettings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables(prefix: "ASPNETCORE_")
.AddCommandLine(args);
var config = builder.Build();
var host = new WebHostBuilder()
.UseUrls("http://*:5000")
.UseConfiguration(config)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
generalsettings.json
содержит следующие данные:
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
Поэтому я закомментирована по умолчанию Startup
класса конструктор. Затем я заметил, что именно здесь назначается IConfigurationRoot Configuration
, и поэтому, когда я пытаюсь использовать его с ConfigureServices
, он равен нулю. Я пытаюсь использовать (я думаю) конфигурацию, построенную в Program
's Main
. Что мне здесь не хватает?
UPDATE
Для того, чтобы понять: я пытаюсь использовать args
в Startup
классе.
Что именно вы пытаетесь достичь здесь. Я чувствую, что то, что я думаю, что вы пытаетесь сделать, может быть выполнено с помощью вашего launchSettings.json. Что должно быть в ваших свойствах для проекта. –
Я пытаюсь использовать 'args' в файле' Startup'. – nicks