Invalid verbs do not cause errors if a default verb is set
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
Bắt đầu với lệnh gọi Parser.ParseArguments được hiển thị trong issue và tái hiện hành vi bằng cách sử dụng DefaultVerb.exe foo khi verb mặc định được bật. Theo dõi cách một verb không được nhận diện được xử lý khi có verb mặc định, sau đó xác minh rằng đầu vào không hợp lệ đi đến đường dẫn lỗi thay vì DoSomething hoặc verb mặc định.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Below is a very simplified C# console application I called DefaultVerb. Running the application with start or finish works as expected, outputting Start or Finish correctly, but if I run the application with DefaultVerb.exe foo, it outputs Start. If I set isDefault to false, and run DefaultVerb.exe foo I receive the following expected error:
ERROR(S):
Verb 'foo' is not recognized.
--help Display this help screen.
--version Display version information.
When I have isDefault: true on my verb, what should be the behavior if I pass in an invalid verb? I'm not expecting a bad verb to run my default verb.
`
using CommandLine;
using System;
internal class Program
{
[Verb("start", isDefault: true, HelpText = "start help")]
class StartOptions
{
}
[Verb("finish", HelpText = "finish help")]
class FinishOptions
{
}
static void Main(string[] args)
{
var parser = new Parser(settings =>
{
settings.AutoVersion = false;
settings.CaseSensitive = false;
settings.HelpWriter = Console.Out;
});
parser.ParseArguments<StartOptions, FinishOptions>(args)
.WithNotParsed(ExitWithError)
.WithParsed(DoSomething);
}
static void DoSomething(object commandObj)
{
switch (commandObj)
{
case StartOptions:
Console.WriteLine("Start");
break;
case FinishOptions:
Console.WriteLine("Finish");
break;
}
}
static void ExitWithError(IEnumerable<Error> errors)
{
Environment.Exit(1);
}
}
`
- 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
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
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của commandlineparser/commandline
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
commandlineparser/commandline#951 · 1 bình luận ·
-
Code example misses iEnumerable Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 70/100
commandlineparser/commandline#880 · 2 reaction ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 45/100
commandlineparser/commandline#952 ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 35/100
commandlineparser/commandline#948 ·
-
How to add examples for verbs? Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
commandlineparser/commandline#947 ·
Tất cả issue của commandlineparser/commandline
Issue tương tự
-
CS0162 "Unreachable code detected" warning from a MSBuildTemp .tmp file in every game project Đang mởbug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
-
Type: enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
apache/arrow-adbc#4809 ·
-
type/automation type/tech-debt
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
microsoft/vscode-azurefunctions#5197 · 1 bình luận ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
microsoft/microsoft-ui-reactor#1274 ·