我正在尝试构建一个c#程序,它将字符串传递给现有的控制台应用程序,并在完成处理后返回字符串。
以下是我希望它如何工作:
public void InitializeUtil(List<object> items)
{
Process DataValidationUtilitty = new Process();
DataValidationUtilitty.StartInfo.FileName = Configuration.DVUTIL;
DataValidationUtilitty.StartInfo.CreateNoWindow = false;
DataValidationUtilitty.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
DataValidationUtilitty.StartInfo.RedirectStandardInput = true;
DataValidationUtilitty.StartInfo.RedirectStandardOutput = true;
DataValidationUtilitty.StartInfo.RedirectStandardError = true;
DataValidationUtilitty.StartInfo.UseShellExecute = false;
DataValidationUtilitty.OutputDataReceived += new DataReceivedEventHandler(InterProcOutputHandler);
DataValidationUtilitty.ErrorDataReceived += new DataReceivedEventHandler(InterProcOutputHandler);
DataValidationUtilitty.Start();
DataValidationUtilitty.BeginOutputReadLine();
DataValidationUtilitty.StandardInput.WriteLine(items[0].ToString());
}
public void InterProcOutputHandler(object sendingProcess, DataReceivedEventArgs outLine)
{
Console.WriteLine(outLine.Data.ToString());
}
// And I call
Program ThisProgram = new Program();
ThisProgram.InitializeUtil(items);
由于一些显而易见的原因,这不起作用,我不知道为什么。
这是一个有效的例子:
document.json
档案.bat
文件
document.json
作为输入字符串
我在这里缺少什么,我对这个过程有什么不了解?我从dvutils.exe
开发人员得到保证,程序确实输入,输出,错误。