我怎样才能从控制台应用程序 return 列表<string>?
How can I return a List<string> from a console application?
我正在从 Windows 表单应用程序调用控制台应用程序。我想从控制台应用程序中获取字符串列表。
这是我的简化代码...
[STAThread]
static List<string> Main(string[] args)
{
List<string> returnValues = new List<string>();
returnValues.Add("str_1");
returnValues.Add("str_2");
returnValues.Add("str_3");
return returnValues;
}
不,您不能 return 字符串或字符串列表。 Main方法只能returnvoid
或者int
见MSDN
你不能只是 return 一个列表,你必须以另一端可以接收它的方式对其进行序列化。
一个选项是将列表序列化为 JSON 并通过 Console.Out
流发送。然后,在另一端,从进程的输出流中读取并反序列化它。
这样不行。 Main can return 只能是void 或int。
但是您可以将列表发送到标准输出并在另一个应用程序中读取它。
在控制台应用程序中添加:
Console.WriteLine(JsonConvert.SerializeObject(returnValues));
在来电应用中:
Process yourApp= new Process();
yourApp.StartInfo.FileName = "exe file";
yourApp.StartInfo.Arguments = "params";
yourApp.StartInfo.UseShellExecute = false;
yourApp.StartInfo.RedirectStandardOutput = true;
yourApp.Start();
string output = yourApp.StandardOutput.ReadToEnd();
List<string> list = JsonConvert.DeserializeObject<List<string>>(output);
yourApp.WaitForExit();
Return Main 方法的类型是 void 或 int。
Main 方法不是为此制作的。但是如果你想在这里打印你的列表是代码:
public void showList(List<String> list)
{
foreach (string s in list)
{
Console.WriteLine(s);
}
}
我正在从 Windows 表单应用程序调用控制台应用程序。我想从控制台应用程序中获取字符串列表。 这是我的简化代码...
[STAThread]
static List<string> Main(string[] args)
{
List<string> returnValues = new List<string>();
returnValues.Add("str_1");
returnValues.Add("str_2");
returnValues.Add("str_3");
return returnValues;
}
不,您不能 return 字符串或字符串列表。 Main方法只能returnvoid
或者int
见MSDN
你不能只是 return 一个列表,你必须以另一端可以接收它的方式对其进行序列化。
一个选项是将列表序列化为 JSON 并通过 Console.Out
流发送。然后,在另一端,从进程的输出流中读取并反序列化它。
这样不行。 Main can return 只能是void 或int。 但是您可以将列表发送到标准输出并在另一个应用程序中读取它。
在控制台应用程序中添加:
Console.WriteLine(JsonConvert.SerializeObject(returnValues));
在来电应用中:
Process yourApp= new Process();
yourApp.StartInfo.FileName = "exe file";
yourApp.StartInfo.Arguments = "params";
yourApp.StartInfo.UseShellExecute = false;
yourApp.StartInfo.RedirectStandardOutput = true;
yourApp.Start();
string output = yourApp.StandardOutput.ReadToEnd();
List<string> list = JsonConvert.DeserializeObject<List<string>>(output);
yourApp.WaitForExit();
Return Main 方法的类型是 void 或 int。
Main 方法不是为此制作的。但是如果你想在这里打印你的列表是代码:
public void showList(List<String> list)
{
foreach (string s in list)
{
Console.WriteLine(s);
}
}