C# - 控制台应用程序 - 如何读取 CLI 选项参数
C# - Console App - How To Read CLI option arguments
使用 System.CommandLine v.2.0.0-beta3.22114.1
和 System.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
}
使用 System.CommandLine v.2.0.0-beta3.22114.1
和 System.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
}