C# - 控制台应用程序 - 如何读取 CLI 选项参数

C# - Console App - How To Read CLI option arguments

使用 System.CommandLine v.2.0.0-beta3.22114.1System.CommandLine.NamingConventionBinder v.2.0.0-beta3.22114.1,我试图创建一个带有 --name 选项的简单 get 命令。

该选项是必需的。它需要一个参数,并将在 Console.WriteLine 语句中使用它。

为了组织起见,我在单独的 class 文件中创建命令并继承 Command class.

public class GetCommand : Command
{
    public GetCommand()
        :base("get", "Filters events by name.")
    {
        var name = new Option("--name", "The name of the event you like to fetch.")
        {
            IsRequired = true,
        };

        AddOption(name);
        Handler = CommandHandler.Create((string name) => Console.WriteLine(name));

        
    }
}

在 运行 运行应用程序时,当我 运行 使用 get --name ali 命令、选项和参数的可执行文件时,我不断收到以下异常: Unrecognized command or argument 'ali'.

我做错了什么?

对于带参数的选项,您应该使用泛型 Option<T>。使用参数的类型作为类型参数:

new Option<string>(
    name: "--name", 
    description: "The name of the event you like to fetch."
) {
    IsRequired = true
}