.NET Console App如何通过Process对象传递结果?

时间:2015-02-27 22:29:04

标签: .net console-application

我正在尝试找到一种从父进程运行控制台应用程序的强大方法,并让控制台应用程序与父进程通信。因此,我认为可能的一种方法是通过Process对象启动控制台应用程序,并让应用程序修改一些属性,并显示可以检查的结果消息。我不知道是否可能,或者您如何访问实例化该实例的父进程对象。或者,如果有更好的方法可以这样做。

我在VB.NET Visual Studio 2010,.NET Framework 3.5中编写。

当然我可以将一个文件输出到包含info的磁盘,并在完成该过程后查找它,但这并不像我想的那样优雅。

1 个答案:

答案 0 :(得分:0)

感谢Jon Skeet,这让我得到了一个有效的答案。以下是有效代码的示例:

    Dim retrieveArgs As String
    'Set up arguments to pass
    retrieveArgs = "-A -B -C"
    Dim si As New ProcessStartInfo
    si.FileName = Request.PhysicalApplicationPath & "MyUtility.exe"
    si.Arguments = retrieveArgs
    si.CreateNoWindow = True
    si.UseShellExecute = False
    'NOTE: You have to redirect StdOut
    si.RedirectStandardOutput = True
    Dim p As Process = Process.Start(si)

    p.WaitForExit()

    Dim result As String = ""
    While Not p.StandardOutput.EndOfStream
        result = p.StandardOutput.ReadLine
        Logger.WriteLine(fxName, result, Log.MessageTypeEnum.InfoType)
    End While