捕获控制台输入输出

我有一个控制台应用程序,它从控制台读取输入并将输出写入控制台。 我需要编写另一个应该运行第一个程序的程序,模拟它的控制台输入并获取输出。 你能否为这个问题提供调查方法?

控制台应用程序代码的(非常简单)示例:

string input = Console.ReadLine(); int value = int.Parse(input); Console.WriteLine(value * value); 

您可以创建新Process并为其分配StandardInputStandardOutput属性。

 ProcessStartInfo processStartInfo = new ProcessStartInfo(executableName, executableParameter); processStartInfo.UseShellExecute = false; processStartInfo.ErrorDialog = false; processStartInfo.RedirectStandardError = true; processStartInfo.RedirectStandardInput = true; processStartInfo.RedirectStandardOutput = true; Process process = new Process(); process.StartInfo = processStartInfo; bool processStarted = process.Start(); StreamWriter inputWriter = process.StandardInput; StreamReader outputReader = process.StandardOutput; StreamReader errorReader = process.StandardError; //Write and read process console using inputWriter and outputReader. process.WaitForExit();