c# – WPF命令行参数,一个聪明的方式?

我正在寻找一种方式,我可以解析命令行参数到我的WPF应用程序,只是一种方式读取用户传递的参数的值。

举个例子

application.exe /setTime 5

是有办法我有一些代码,我可以说:

MessageBox.Show(arg("setTime"));

其中将输出5

工作解决方案

How to create smart WPF Command Line Arguments

当您解析命令行时,将参数/值对放在Dictionary中,参数作为键。然后你的arg(“SetTime”)将变成:

MessageBox.Show(dictionary["SetTime"]);

(显然你不希望实际的字典是公开的。)

要获得参数,首先可以使用:

string[] args = Environment.GetCommandLineArgs();

这将返回所有的参数,所以你需要解析数组的步骤二(首先检查长度是两的倍数1之后):

数组的第一个元素是执行程序的名称 – MSDN Page – 所以你的循环需要从一个开始:

for (int index = 1; index < args.Length; index += 2)
{
     dictionary.Add(args[index], args[index+1]);
}

这循环的步骤二,因为你定义每个参数是一对值:标识符和实际值本身,例如。

my.exe -arg1 value1 -arg2 value2

然后你可以看看参数是否通过查看是否在字典中的-arg1键,然后读取它的值:

string value;
if (dictionary.TryGetValue(arg, out value))
{
    // Do what ever with the value
}

这意味着您可以按任何顺序拥有参数,并省略您不想指定的任何参数。

http://stackoverflow.com/questions/9343381/wpf-command-line-arguments-a-smart-way

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c# – WPF命令行参数,一个聪明的方式?