commandlineparser / commandlineparser/commandline

Issues with sub options

Offen
#48 6 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
postponed-after-issue-250-close_temp-label
Vorherrschende Sprache
C#
Sterne
4.8k
Forks
478
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

**Issue by [wadewegner](https://github.com/wadewegner)**
_Thursday Oct 01, 2015 at 18:07 GMT_
_Originally opened as https://github.com/gsscoder/commandline/issues/249_

----

I'm having an issue with the parser not figuring out my sub-options.

Here's the code in `Main`:

```
var invokedVerb = "";
var invokedVerbInstance = new object();

var options = new Options();
if (!CommandLine.Parser.Default.ParseArguments(args, options,
(verb, subOptions) =>
{
// if parsing succeeds the verb name and correct instance
// will be passed to onVerbCommand delegate (string,object)
invokedVerb = verb;
if (!string.IsNullOrEmpty(invokedVerb))
invokedVerbInstance = subOptions;
}))
{
Environment.Exit(CommandLine.Parser.DefaultExitCodeFail);
}
```

This is pretty much right from the wiki.

My options are defined as this:

```
class Options
{
public Options()
{
CpVerb = new CPSubOptions { };
}

[VerbOption("cp", HelpText = "Interact with cp.")]
public CPSubOptions CpVerb { get; set; }

[HelpVerbOption]
public string GetUsage(string verb)
{
return HelpText.AutoBuild(this, verb);
}
}

class CPSubOptions
{
[Option('n', "name", HelpText = "Get details name.")]
public string Name { get; set; }
}
```

When I run with `cp` as the args, it works and the parser determines that `CPSubOptions` is the `subOptions` and `invokedVerbInstance` is set appropriately.

However, when I run with `cp --name blah` or `cp -n blah`, the `subOptions` is null, so it's not parsed properly.

Any help?

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

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