System.CommandLine
System.CommandLine to oficjalna biblioteka w .NET która rozszerza tradycyjne podejście do aplikacji konsolowych.
Używając tego namespace z automatu dostajemy:
- parsowanie argumentów wejściowych,
- walidację parametrów,
- automatyczne generowanie pomocy
- automatyczne generowanie podpowiedzi.
System.CommandLine to nowsze podejście dla tradycyjnych args[]. Jest to oficjalna paczka od Microsoft, więc można jej używać za darmo w każdy możliwy sposób.
Przykład kodu
using System.CommandLine;
var nameOption = new Option<string>(
name: "--name",
description: "Nazwa użytkownika",
getDefaultValue: () => "World");
var rootCommand = new RootCommand("Przykładowa aplikacja CLI");
rootCommand.AddOption(nameOption);
rootCommand.SetHandler((string name) =>
{
Console.WriteLine($"Hello, {name}!");
}, nameOption);
return await rootCommand.InvokeAsync(args);
Użycie w konsoli:
myapp --name John
# Output: Hello, John!
myapp --help
# Wyświetli automatycznie wygenerowaną pomoc
Alternatywy
- ConsoleAppFramework napisany przez Yoshifumi Kawai.