代码之家  ›  专栏  ›  技术社区  ›  joshcomley

如何将值从控制台应用程序返回到.NET中的服务?

  •  3
  • joshcomley  · 技术社区  · 16 年前

    我有一个.NET服务。

    我有一个.NET控制台应用程序。

    我想要服务电话线路上的东西 Process.Start("consoleapp.exe") 从应用程序中得到一些返回的信息,理想情况下只返回一个数字。

    我该怎么做?

    编辑:

    我想一定是: Process.Start("myapp.exe").ExitCode -但是如何在控制台应用程序中设置退出代码呢?

    5 回复  |  直到 15 年前
        1
  •  11
  •   Jesper Palm    16 年前
    Process p = Process.Start("app.exe");
    p.WaitForExit();
    int number = p.ExitCode;
    

    在app.exe中设置environment.exitcode…

        2
  •  3
  •   Agent_9191    16 年前

    您可以通过更改主方法来使用退出代码。

    public void Main(string[] args){return;}
    

    public int Main(string[] args){return 0;}
    

    不是一个优雅的解决方案,但它是有效的。

        3
  •  1
  •   Anton Gogolev    16 年前

    可以通过标准返回任意数字 ExitCode 机制。你只需要 Start() 然后,一个过程 WaitForExit() ,然后获取 ExitCode .

        4
  •  1
  •   Reed Copsey    16 年前

    您可以使用退出代码,退出代码可以从主函数返回,也可以通过environment.exit code设置。

    另一种选择是让您的consoleapp写入标准输出流,并将输出重定向到主应用程序。

    第二个选项的优点是,如果以后发现有必要,可以返回比单个整数更多的数据。缺点是要做的工作要多一些。

    这个 CodeProject article 遍历重定向生成的进程的标准输出流。

        5
  •  0
  •   codeape    16 年前

    控制台应用程序可以设置其退出代码。

    控制台应用程序可以通过以下方式设置其退出代码:

    1. 呼叫 System.Environment.Exit(exitcode)
    2. main 函数返回一个int。

    这个 ExitCode 财产 System.Diagnostics.Process 类)让服务进程检查控制台应用程序的退出代码。

    推荐文章