запуск консольных приложений .net программно - PullRequest
0 голосов
/ 03 апреля 2012

У меня есть программа .exe (консольное приложение), написанная на .net.

  1. Мне нужно его выполнить
  2. Предоставить входные данные
  3. Получить выходные данные в виде строки или предпочтительно в виде потока.

В настоящее время яЯ использую System.Diagnostics пространство имен и Process Class.Но использование Diagnostic пространства имен для этой цели, похоже, не подходит.

Есть ли способ, с помощью которого я могу сделать то же самое более эффективно?Как с помощью отражения найти метод Main(), а затем вызвать его.

Ответы [ 2 ]

3 голосов
/ 03 апреля 2012

Класс Process - это именно тот инструмент, который вам нужен.Не обращайте внимания на имя пространства имен Diagnostic - просто используйте класс Process.

0 голосов
/ 01 февраля 2018

Вполне нормально. System.Diagnostics - это просто пространство имен.

Если требуется дополнительная информация, вы можете перейти к этому проекту для мотивации и посмотреть, как обрабатывать процессы грамматически или этот фрагмент из ВМ находится здесь

                var startInfo = new ProcessStartInfo(FilePath)
                {
                    WorkingDirectory = RootFolderPath,
                    Arguments = StartingArguments,
                    RedirectStandardOutput = true,
                    UseShellExecute = false,
                    CreateNoWindow = true
                };
                ConsoleProcess = new Process {StartInfo = startInfo};

                ConsoleProcess.Start();
...