簡體   English   中英

如何從控制台應用程序返回值到.NET中的服務?

[英]How do I return a value from a console application to a service in .NET?

我有一個.NET服務。

我有一個.NET控制台應用程序。

我想要一些調用Process.Start("consoleapp.exe")並從應用程序返回一些信息,理想情況下只返回一個數字。

我該怎么做呢?

編輯:

我認為它必須是: Process.Start("myapp.exe").ExitCode - 但是如何在控制台應用程序中設置退出代碼?

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

在app.exe中你設置Enviroment.ExitCode ...

您可以通過更改Main方法來使用退出代碼

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

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

不是優雅的解決方案,但它的工作原理。

可以通過標准的ExitCode機制返回任意數字。 您只需要Start()一個進程,然后是WaitForExit() ,然后獲取ExitCode的值。

您可以使用退出代碼,該代碼可以從Main函數返回或通過Environment.ExitCode設置。

另一種選擇是讓ConsoleApp寫入標准輸出流,並將輸出重定向到主應用程序。

第二個選項的優點是,如果以后發現這一點,您可以返回比單個整數更多的數據。 缺點是設置需要更多工作。

CodeProject文章介紹了重定向生成進程的標准輸出流。

控制台應用程序可以設置其退出代碼。

控制台應用可以通過以下任一方式設置退出代碼:

  1. 調用System.Environment.Exit(exitcode) ,或
  2. main函數返回一個int。

ExitCode屬性( System.Diagnostics.Process類)允許服務進程檢查控制台應用程序的退出代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM