Я хочу вызвать процесс из C # с несколькими параметрами.

Когда я звоню:

ProcessStartInfo info = new ProcessStartInfo();
...
info.Arguments = "argument";
Process.Start(info);

Я могу установить только String как атрибут. (То же самое для всех типов метода Start)

Есть ли способ установить String[] в качестве аргументов или как это String интерпретируется?

Потому что с другой стороны

static void Main(string[] args)

Я получаю String[].

Заранее спасибо.

1
Leviathan 23 Май 2014 в 15:12

2 ответа

Лучший ответ

Есть ли способ установить String [] в качестве аргумента?

Нет, вы не можете этого сделать, поскольку тип ProcessStartInfo.Arguments - string. Следовательно, вы можете присвоить ему массив строк.

В эту строку можно передать следующие параметры:

info.Arguments = "argument1 argument2 argument3";

И ваш .exe будет выполнен, как если бы вы передавали массив строк с элементами (argument1, argument2, argument3).

2
Christos 23 Май 2014 в 15:14

Технически это можно сделать так:

  string[] args = new String[] {"argument1", "argument2", "argument3"};

  ...

  info.Arguments = String.Join(" ", args);

Ограничение состоит в том, что args не должен иметь аргументов с пробелами

3
Dmitry Bychenko 23 Май 2014 в 15:19