Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Aplikasi baris perintah biasanya menyediakan opsi untuk menampilkan deskripsi singkat tentang perintah, opsi, dan argumen yang tersedia.
System.CommandLine
menyediakan System.CommandLine.Help.HelpOption
yang secara default disertakan dalam opsi RootCommand .
System.CommandLine. Help.HelpOption menghasilkan output bantuan untuk simbol yang ditentukan dengan menggunakan informasi yang diekspos oleh System.CommandLine.Symbol.Name
, , System.CommandLine.Symbol.HelpName
System.CommandLine.Symbol.Description
, dan properti lainnya seperti nilai default atau sumber penyelesaian.
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>
Pengguna aplikasi mungkin terbiasa dengan berbagai cara untuk meminta bantuan di berbagai platform, sehingga aplikasi yang dibangun di System.CommandLine
mampu merespons berbagai cara permintaan bantuan. Perintah berikut ini semuanya setara:
dotnet --help
dotnet -h
dotnet /h
dotnet -?
dotnet /?
Output bantuan tidak selalu menampilkan semua perintah, argumen, dan opsi yang tersedia. Beberapa dari mereka mungkin disembunyikan melalui System.CommandLine.Symbol.Hidden
properti , yang berarti mereka tidak muncul dalam output bantuan (dan penyelesaian) tetapi dapat ditentukan pada baris perintah.
Kustomisasi fitur bantuan
Anda dapat menyesuaikan output bantuan untuk perintah dengan menentukan teks bantuan tertentu untuk setiap simbol, memberikan kejelasan lebih lanjut kepada pengguna mengenai penggunaannya.
Untuk mengkustomisasi nama argumen opsi, gunakan properti opsi System.CommandLine.Option.HelpName
.
Dalam aplikasi sampel, --light-mode
dijelaskan secara memadai, tetapi perubahan deskripsi opsi pada --file
dan --color
akan membantu. Untuk --file
, argumen dapat diidentifikasi sebagai <FILEPATH>
. Untuk opsi , --color
Anda dapat mempersingkat daftar warna yang tersedia.
Untuk membuat perubahan ini, perluas kode sebelumnya dengan kode berikut:
fileOption.HelpName = "FILEPATH";
foregroundColorOption.AcceptOnlyFromAmong(
ConsoleColor.Black.ToString(),
ConsoleColor.White.ToString(),
ConsoleColor.Red.ToString(),
ConsoleColor.Yellow.ToString()
);
Aplikasi ini sekarang menghasilkan output bantuan berikut:
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]
Tambahkan bagian untuk meningkatkan hasil
Anda dapat menambahkan bagian pertama atau terakhir ke output bantuan. Misalnya, Anda ingin menambahkan beberapa seni ASCII ke bagian deskripsi dengan menggunakan paket Spectre.Console NuGet.
Tentukan tindakan kustom yang melakukan beberapa logika tambahan sebelum dan sesudah memanggil default HelpAction
:
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;
}
}
Perbarui HelpAction
yang ditentukan oleh RootCommand
untuk menggunakan tindakan kustom.
for (int i = 0; i < rootCommand.Options.Count; i++)
{
// RootCommand has a default HelpOption, we need to update its Action.
if (rootCommand.Options[i] is HelpOption defaultHelpOption)
{
defaultHelpOption.Action = new CustomHelpAction((HelpAction)defaultHelpOption.Action!);
break;
}
}
Sekarang tampilan output bantuan seperti ini:
____ _ __ _ _
| _ \ ___ __ _ __| | __ _ / _| (_) | | ___
| |_) | / _ \ / _` | / _` | / _` | | |_ | | | | / _ \
| _ < | __/ | (_| | | (_| | | (_| | | _| | | | | | __/
|_| \_\ \___| \__,_| \__,_| \__,_| |_| |_| |_| \___|
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