C#应用程序中的命令行参数

32

我有一个使用WPF C#编写的应用程序,需要传递命令行参数。这个参数实际上是一个URL,在我的应用程序中我需要使用它。

在WPF C#中如何传递这些命令行参数,以便应用程序可以在启动时获取URL?


1
请查看http://msdn.microsoft.com/en-us/library/aa972153(v=vs.90).aspx或在谷歌上搜索WPF命令行参数。 - Joe
3
说实话,在谷歌搜索“wpf 命令行参数”的时候,前四个链接都指向 Stack Overflow,包括这个链接,所以我才来到这里。 - cdkMoose
3个回答

59
在你的App.xaml.cs文件中。
class App : Application
{
    //Add this method override
    protected override void OnStartup(StartupEventArgs e)
    {
        //e.Args is the string[] of command line arguments
    }
}

那么,这意味着我必须在 App.xaml 中完成这个任务,而不是在 MainWindow.xaml 等文件中,对吗? - Cipher
16
如果直接在MainWindow.xaml.cs中使用,那么建议像其他人建议的那样,使用Environment.GetCommandLineArgs()。 - linquize
有没有办法在 Visual Studio 中传递和检查应用程序的命令行参数,而不是尝试从外部启动应用程序? - Cipher

33

如linquize所提到的,但我认为这值得单独回答,因为它非常简单...

你只需使用:

string[] args = Environment.GetCommandLineArgs();

这在整个应用程序中都有效,不仅仅适用于App.xaml.cs文件。


1
你可以通过命令行传递参数,如“no-wpf” C# 应用程序。 区别在于应用程序的入口点。在 WPF 中是 App.xaml.cs。因此,在这个文件中,您可以以这种方式获取参数:
class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        //e.Args represent string[] of no-wpf C# applications
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接