В
Руководство по программированию на С# в MSDN:
Параметр метода Main - это массив String, который представляет аргументы командной строки
Итак, если у меня была программа (MyApp.exe), как это:
class Program
{
static void Main(string[] args)
{
foreach (var arg in args)
{
Console.WriteLine(arg);
}
}
}
Что я начал в командной строке следующим образом:
MyApp.exe Arg1 Arg2 Arg3
В основном методе будет передан массив, содержащий три строки: "Arg1", "Arg2", "Arg3".
Если вам нужно передать аргумент, который содержит пробел, то оберните его в кавычки. Например:
MyApp.exe "Arg 1" "Arg 2" "Arg 3"
Аргументы командной строки обычно используются, когда вам нужно передавать информацию в ваше приложение во время выполнения. Например, если вы пишете программу, которая копирует файл из одного места в другое, вы, вероятно, передадите два местоположения в качестве аргументов командной строки. Например:
Copy.exe C:\file1.txt C:\file2.txt
Эти параметры нам нужны, если мы хотим конфигурировать приложение с помощью консоли - задать входные параметры, используя которые у приложения будет динамическое поведение - мы сможем управлять логикой приложения, а точнее тем, с чем будут, возможно, производится операции, как в примере с местоположением файла. То есть у них та же роль входных параметров, что и у обычных методов, - в зависимости от этих входных параметров, мы также получим динамический результат.
А передавая эти параметры в метод CreateDefaultBuilder(string [] args), мы конфигурируем инициализатора приложения. Как сказано в
Руководство по программированию на С# в MSDN:
К возвращаемому HostBuilderприменяются следующие значения по умолчанию:
Присвойте ContentRootPath результату GetCurrentDirectory()
Загрузка узла IConfiguration из предварительно исправленных переменных среды "DOTNET_"
Загрузить IConfiguration узла из представленных аргументов командной строки
Загрузить IConfiguration приложений из "appSettings. JSON" и "appSettings. [EnvironmentName]. JSON
загружать приложение IConfiguration из секретов пользователя, когда EnvironmentName — "Разработка" с помощью входной сборки
Загрузка IConfiguration приложений из переменных среды
Загрузить IConfiguration приложений из представленных аргументов командной строки
Настройка ILoggerFactory для ведения журнала в выходных данных консоли, отладки и источника события
включает проверку области в контейнере внедрения зависимостей, если EnvironmentName — "Development"
А IConfiguration -
Представляет набор свойств конфигурации приложения в вид пар "ключ — значение".
А если мы не передадим параметры, то они просто не будут учитываться при создании HostBuilder'а:
Перегрузка метода, в которой мы не передаём параметров:
Присвойте ContentRootPath результату GetCurrentDirectory()
Загрузка узла IConfiguration из предварительно исправленных переменных среды "DOTNET_"
Загрузить IConfiguration приложений из "appSettings. JSON" и "appSettings. [EnvironmentName]. JSON
загружать приложение IConfiguration из секретов пользователя, когда EnvironmentName — "Разработка" с помощью входной сборки
Загрузка IConfiguration приложений из переменных среды
Настройка ILoggerFactory для ведения журнала в выходных данных консоли, отладки и источника события
включает проверку области в контейнере внедрения зависимостей, если EnvironmentName — "Development"