commandlineparser / commandlineparser/commandline

Issues with sub options

Đang mở
#48 6 bình luận 0 reaction 0 người được giao Xem trên GitHub
postponed-after-issue-250-close_temp-label
Ngôn ngữ chính
C#
Star
4.8k
Fork
478
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

**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?

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.