dotnet / dotnet/command-line-api
Custom validation of arguments
- 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
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