C#CommandLineParser

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#CommandLineParser相关的知识,希望对你有一定的参考价值。

尝试使用Microsoft.Extensions.Configuration.CommandLine。我认为这很容易,尽管缺乏文档(我能找到)。无论如何,请考虑这个小程序:

class Options
{
    [Option('s', "srcSrvr", 
        Default = "PROD", 
        HelpText = "Source server name")]
    public string SourceServer { get; set; }
}
public class Program
{
    public static void Main(string[] args)
    {
        var result = Parser.Default.ParseArguments<Options>(args);
        if (result.Tag == ParserResultType.NotParsed)
        {
            throw new ArgumentException("Invalid arguments supplied.");
        }

        Console.WriteLine(result.SourceServer);
    }
}

}

由于未定义“result.SourceServer”,程序将无法编译。好的,那么它在哪里?

答案

标记Optionspublic。当没有访问修饰符时,默认值为internal,因此看起来在不同程序集中的Parser类型无法看到它。

另一答案

得到答案(顺便说一句,与var无关!)我需要将结果转换为Parser<Options>,它公开了一个Value属性,它具有我需要的Options实例。

谢谢大家的欢呼。我总是对我在这里找到的广泛帮助印象深刻!

以上是关于C#CommandLineParser的主要内容,如果未能解决你的问题,请参考以下文章

如何访问我的 CommandLineParser 的值?

CommandLineParser - 如果没有给出开关,则显示 --help 结果

CommandLineParser 库 - 如何将一个选项的输出用于下一个选项

[C++][原创]opencv中CommandLineParser使用

[C++][原创]opencv中CommandLineParser使用

csharp https://commandline.codeplex.com/上的CommandLineParser Nuget软件包的文档已过时。以下是更新的工作