1

我有一个 Windows 窗体应用程序让我们称之为 B 现在我有另一个应用程序。让我们称之为A

A 将作为新进程启动 B 现在我想将命名参数列表传递给 B 并在 B 中使用它们我该怎么做?

我的意思是示例参数列表

{job:"computer engineer",age:"32",experience:"3 years"}

这些参数列表也应该是可选的。有时我可能会传递 5 个参数,有时是 0

我将如何在 B 应用程序启动时读取这些参数

那么这样做的方法是什么?谢谢你

C#

4

2 回答 2

1

假设您使用 Process.Start 调用您的“B”进程,以下应该可以工作:

System.Diagnostics.Process.Start(string fileName, string arguments)

并且您的“B”进程主线程应该接受一个数组来容纳可能的参数,然后您可以对其进行迭代。

static void Main(string[] args)
{
    //your code to decipher arguments here
}
于 2013-04-17T02:28:05.783 回答
1

我可以想到两种方法来做到这一点。

首先是使用命令行参数。如果您将进程(从命令行)称为:

your.exe -job "computer engineer" -age 32 -experience "3 years"

arguments然后,您可以通过在流程的启动选项中设置来在代码中复制它。然后,您必须设置您的流程来查找所有这些标志,记住它们都可以是可选的,等等。

第二个选项(这更灵活一点)是创建一个包含您传递的值的文件,并从您启动的进程中读取它。您可以制作此 XML 或直接值。

编辑:这是第一个选项的示例

Process p = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "your exe path";
startInfo.Arguments = "your argument list";
p.StartInfo = startInfo;
p.Start();

我不想告诉你如何格式化你的参数字符串;这应该由您决定。但是,我会推荐使用一个库,它可能会使接收端的解析更容易一些。

于 2013-04-17T02:30:56.270 回答