Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Komut satırı uygulamaları genellikle kullanılabilir komutların, seçeneklerin ve bağımsız değişkenlerin kısa bir açıklamasını görüntüleme seçeneği sağlar.
System.CommandLine
HelpOption, varsayılan olarak RootCommand seçeneklerine dahil edilen öğesini sağlar.
HelpOption, , HelpNameDescriptionve tarafından Namekullanıma sunulan bilgileri ve varsayılan değer veya tamamlanma kaynakları gibi diğer özellikleri kullanarak tanımlı simgeler için yardım çıkışı oluşturur.
Option<FileInfo> fileOption = new("--file")
{
Description = "The file to print out",
};
Option<bool> lightModeOption = new("--light-mode")
{
Description = "Determines whether the background color will be black or white"
};
Option<ConsoleColor> foregroundColorOption = new("--color")
{
Description = "Specifies the foreground color of console output",
DefaultValueFactory = _ => ConsoleColor.White
};
RootCommand rootCommand = new("Read a file")
{
fileOption,
lightModeOption,
foregroundColorOption
};
rootCommand.Parse("-h").Invoke();
Description:
Read a file
Usage:
scl [options]
Options:
-?, -h, --help Show help and usage information
--version Show version information
--file The file to print out.
--light-mode Determines whether the background color will be black
or white
--color Specifies the foreground color of console output
<Black|Blue|Cyan|DarkBlue|DarkCyan|DarkGray|DarkGreen|Da [default: White]
rkMagenta|DarkRed|DarkYellow|Gray|Green|Magenta|Red|Whit
e|Yellow>
Uygulama kullanıcıları farklı platformlarda yardım istemek için farklı yöntemlere alışkın olabilir, bu nedenle yerleşik System.CommandLine uygulamalar yardım istemenin birçok yoluna yanıt verir. Aşağıdaki komutların tümü eşdeğerdir:
dotnet --help
dotnet -h
dotnet /h
dotnet -?
dotnet /?
Yardım çıkışının kullanılabilir tüm komutları, bağımsız değişkenleri ve seçenekleri göstermesi gerekmez. Bunlardan bazıları özelliği aracılığıyla gizlenebilirHidden; bu da yardım çıkışında (ve tamamlamalarda) görünmedikleri ancak komut satırında belirtilebileceği anlamına gelir.
Yardım ayarlarını özelleştirme
Her simge için belirli bir yardım metni tanımlayarak komutlar için yardım çıkışını özelleştirebilir ve kullanıcılara kullanımlarıyla ilgili daha fazla netlik sağlayabilirsiniz.
Bir seçeneğin bağımsız değişkeninin adını özelleştirmek için seçeneğin System.CommandLine.Option.HelpName özelliğini kullanın.
Örnek uygulamada, --light-mode yeterince açıklanmıştır, ancak --file ve --color seçeneği açıklamalarında yapılacak değişiklikler yararlı olacaktır.
--file için bağımsız değişken <FILEPATH> olarak tanımlanabilir. Seçenek için --color kullanılabilir renklerin listesini kısaltabilirsiniz.
Bu değişiklikleri yapmak için önceki kodu aşağıdaki kodla genişletin:
fileOption.HelpName = "FILEPATH";
foregroundColorOption.AcceptOnlyFromAmong(
ConsoleColor.Black.ToString(),
ConsoleColor.White.ToString(),
ConsoleColor.Red.ToString(),
ConsoleColor.Yellow.ToString()
);
Uygulama şimdi aşağıdaki yardım çıkışını üretir:
Description:
Read a file
Usage:
scl [options]
Options:
-?, -h, --help Show help and usage information
--version Show version information
--file <FILEPATH> The file to print out.
--light-mode Determines whether the background color will be black or white
--color <Black|Red|White|Yellow> Specifies the foreground color of console output [default: White]
Çıkışa yardımcı olacak bölümler ekleyin
Yardım çıkışına ilk veya son bölümleri ekleyebilirsiniz. Örneğin, Spectre.Console NuGet paketini kullanarak açıklama bölümüne ASCII resmi eklemek istediğinizi varsayalım.
varsayılanı HelpActionçağırmadan önce ve çağırdıktan sonra bazı ek mantıklar gerçekleştiren özel bir eylem tanımlayın:
internal class CustomHelpAction : SynchronousCommandLineAction
{
private readonly HelpAction _defaultHelp;
public CustomHelpAction(HelpAction action) => _defaultHelp = action;
public override int Invoke(ParseResult parseResult)
{
Spectre.Console.AnsiConsole.Write(new FigletText(parseResult.RootCommandResult.Command.Description!));
int result = _defaultHelp.Invoke(parseResult);
Spectre.Console.AnsiConsole.WriteLine("Sample usage: --file input.txt");
return result;
}
}
HelpAction öğesini RootCommand ile tanımlanan özel eylemi kullanmak üzere güncelleştirin.
for (int i = 0; i < rootCommand.Options.Count; i++)
{
// RootCommand has a default HelpOption; update its Action.
if (rootCommand.Options[i] is HelpOption defaultHelpOption)
{
defaultHelpOption.Action = new CustomHelpAction((HelpAction)defaultHelpOption.Action!);
break;
}
}
Yardım çıktısı artık şu şekilde görünüyor:
____ _ __ _ _
| _ \ ___ __ _ __| | __ _ / _| (_) | | ___
| |_) | / _ \ / _` | / _` | / _` | | |_ | | | | / _ \
| _ < | __/ | (_| | | (_| | | (_| | | _| | | | | | __/
|_| \_\ \___| \__,_| \__,_| \__,_| |_| |_| |_| \___|
Description:
Read a file
Usage:
scl [options]
Options:
-?, -h, --help Show help and usage information
--version Show version information
--file <FILEPATH> The file to print out.
--light-mode Determines whether the background color will be black or white
--color <Black|Red|White|Yellow> Specifies the foreground color of console output [default: White]
Sample usage: --file input.txt