如何在.NET从控制台应用程序的值返回到服务?(How do I return a value fr

2019-08-20 13:31发布

我有一个.NET服务。

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

我想沿着服务的调用东西线Process.Start("consoleapp.exe")并得到了一些信息,返回从应用程序回来,最好只返回一个数字。

我该怎么做呢?

编辑:

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

Answer 1:

Process p = Process.Start("app.exe");
p.WaitForExit();
int number = p.ExitCode;

而在APP.EXE设置Enviroment.ExitCode ...



Answer 2:

您可以通过它来改变你的主要方法使用一个退出代码

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

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

不是一个完美的解决方案,但它的工作原理。



Answer 3:

任意数量可以通过标准被退回的ExitCode机制。 你只需要Start()的过程,然后WaitForExit()然后得到的值ExitCode



Answer 4:

您可以使用退出代码,它可以从主函数返回或通过Environment.ExitCode设置。

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

第二个选项的好处是,你可以比一个整数返回更多的数据,如果以后你会发现这个必要。 其缺点是,它更多的工作来设置。

这CodeProject上的文章遍历重定向衍生进程的标准输出流。



Answer 5:

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

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

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

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



文章来源: How do I return a value from a console application to a service in .NET?