dotnet / dotnet/command-line-api

Custom validation of arguments

Offen
#476 8 Kommentare 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
needs documentation
Vorherrschende Sprache
C#
Sterne
3.7k
Forks
428
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

At which place do I implement custom validation for the CLI arguments? For example I got one argument that is not optional and has to be set, or I want to validate an connection string which is provided through the CLI.

Currently I'm creating and using a command handler like that:
`rootCommand.Handler = CommandHandler.Create(arguments =>`

Hereby the CLI arguments are used to create the `ProgramArguments` class. But when I throw an Exception in the constructor of that class it's not handled anywhere.

It seems that it's also not possible to catch that exception when wrapping `return rootCommand.InvokeAsync(args, new SystemConsole()).Result;` in a try catch block.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginnen Sie mit der im Issue gezeigten Verwendung von CommandHandler.Create und dem Aufruf rootCommand.InvokeAsync(args, new SystemConsole()).Result. Verfolgen Sie, wie CLI-Argumente gebunden werden und wie Konstruktor-Ausnahmen behandelt werden, und bestimmen Sie anschließend die dafür vorgesehene Stelle für die Validierung erforderlicher Argumente und der Connection-String. Im Issue werden keine Dateien oder Tests genannt, daher würde die Fertigstellung eine abgestimmte Implementierung oder einen dokumentierten Validierungspfad erfordern.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp
Bereich
cli
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.