我正在编写一个需要解析进程命令行的.NET类。我不希望Main()方法和该类之间存在依赖关系。该类如何访问命令行?
答案 0 :(得分:38)
致电Environment.GetCommandLineArgs()
。
答案 1 :(得分:4)
如果使用 .NET Compact Framework ,则未实现Environment.GetCommandLineArgs()方法和System.Diagnostics.Process.GetCurrentProcess()。StartInfo.Arguments返回始终为空字符串,因此你必须使用main函数并将参数传递给你的其他类。
一个例子:
[MTAThread]
static void Main(String[] commandLineArguments)
{
CommandLineHelper.parse(commandLineArguments);
}
public static class CommandLineHelper
{
public static void parse(String[] commandLineArguments) {
// add your code here
}
}
答案 2 :(得分:2)
创建一个包含应用程序选项的类。在main方法中,创建该类的实例,使用命令行参数初始化它,并将其传递给需要它的类。
或者,您可以在此后的任何时间通过使用CustomConfigClass.Create()
的{{1}}方法创建类来初始化类。
第一个选项是我的建议,因为它使类更容易为单元测试做准备,并在以后切换到另一种配置方法,而不会因为依赖命令行而破坏应用程序。
答案 3 :(得分:1)
System.Diagnostics.Process.GetCurrentProcess().StartInfo.Arguments
答案 4 :(得分:0)
String [] myStr = Environment.GetCommandLineArgs();
完成这个例子总是好的。