Как добавить параметр логического флага к команде с помощью System.CommandLine?C#

Место общения программистов C#
Anonymous
Как добавить параметр логического флага к команде с помощью System.CommandLine?

Сообщение Anonymous »

Я пытаюсь добавить параметр логического флага в свою программу System.CommandLine C#/.NET. Однако ничто из того, что я указываю при запуске программы, похоже, не приводит к истинному значению в моем обработчике команд:

Код: Выделить всё

using System.CommandLine;
using System.CommandLine.Parsing;
using System.CommandLine.Builder;
using System.CommandLine.NamingConventionBinder;

var rootCommand = new RootCommand
{
Description = "System.CommandLine Example"
};

var exampleOption = new Option(
new[] { "--opt", "-o" },
"Set an example boolean option to true"
);

var exampleCommand = new Command("command", "Example command")
{
Handler = CommandHandler.Create((flag) =>
{
Console.WriteLine($"Ran example command with opt={flag}");
})
};

exampleCommand.AddOption(exampleOption);
rootCommand.AddCommand(exampleCommand);

var parser = new CommandLineBuilder(rootCommand)
.UseHelp()
.UseDefaults()
.Build();

await parser.InvokeAsync(args);
Когда я вызываю его, я получаю такой результат:

Код: Выделить всё

SystemCommandLineExample.exe command --opt=true
Ran example command with opt=False
Что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/786 ... ommandline

Вернуться в «C#»