Подтвердить что ты не робот

Как получить доступ к параметрам командной строки за пределами Main в С#

Я пишу класс .NET, который должен разбирать командную строку процесса. Я не хочу иметь зависимость между методом Main() и этим классом. Как класс может получить доступ к командной строке?

4b9b3361

Ответ 1

Вызов Environment.GetCommandLineArgs().

Ответ 2

Если вы используете .NET Compact Framework, метод Environment.GetCommandLineArgs() не реализован и System.Diagnostics.Process.GetCurrentProcess(). StartInfo.Arguments возвращает всегда пустую строку, поэтому вы должны использовать основную функцию и передавать аргументы другим классам.

Пример:

[MTAThread]
static void Main(String[] commandLineArguments)
{
  CommandLineHelper.parse(commandLineArguments);
}

public static class CommandLineHelper
{
  public static void parse(String[] commandLineArguments) {
    // add your code here
  }
}

Ответ 3

System.Diagnostics.Process.GetCurrentProcess().StartInfo.Arguments

Ответ 4

Создайте класс, содержащий ваши параметры приложения. В основном методе создайте экземпляр этого класса, инициализируйте его аргументами командной строки и передайте его тем классам, которые в нем нуждаются.

Кроме того, вы могли бы инициализировать класс в любое время после его создания с помощью метода CustomConfigClass.Create(), который использует Environment.GetCommandLineArgs().

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

Ответ 5

String [] myStr = Environment.GetCommandLineArgs();

всегда полезно завершить пример.