Аргументы командной строки обычно используются для передачи некоторой информации о конфигурации программе при ее выполнении.
Типичная программа вызывает CreateDefaultBuilder
, чтобы начать настройку хоста.
Любая загруженная конфигурация может быть переопределена аргументами командной строки.
Например, следующее было взято непосредственно из документации с некоторыми или моими собственными формулировками
Предполагая, что hosting.json
файл, подобный этому
{
urls: "http://*:5005"
}
Переопределение конфигурации, предоставляемой UseUrls
, с помощью hosting.json config в первую очередь, аргумент командной строки config вторую:
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args)
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("hosting.json", optional: true)
.AddCommandLine(args) //<--
.Build();
return WebHost.CreateDefaultBuilder(args)
.UseUrls("http://*:5000") //<--
.UseConfiguration(config) //<--
.Configure(app =>
{
app.Run(context =>
context.Response.WriteAsync("Hello, World!"));
})
.Build();
}
}
Чтобы указать хост, работающий с определенным URL, желаемое значение может быть передано из командной строки при выполнении dotnet run
. Аргумент командной строки переопределяет значение urls из файла hosting.json, и сервер прослушивает порт 8080:
dotnet run --urls "http://*:8080"
Справочник Хостинг в ASP.NET Core
Следующая статья также должна помочь
ASP.NET Core - передача аргументов командной строки в класс запуска