discord.net 中的 [Summary("")] 有什么用?
What is [Summary("")] used for in discord.net?
我想在 discord.net
中创建一个帮助命令,我想知道 [Summary("")]
有什么作用。是否可以获取命令摘要? discord.net 中的摘要是否类似于 discord.js-commando
中的 description:
?我在 google 上进行了搜索,但找不到有关其功能的任何结果。
如果我想做一个帮助命令,我如何获得摘要?它有什么作用?
Summary
属性用于提供有关 类、方法或方法参数的一些信息。这本质上是一种 "metadata" 的形式,用于记录您的代码并允许您创建,例如,一个 "help" 命令,它自动从命令组中收集所有 Summary
属性,命令本身和命令方法的输入参数。
这将自动更新 "help" 命令,因此您不必手动执行。
展示用法的一些基本代码:
[Command("Help")]
public async Task Help()
{
List<CommandInfo> commands = _commandService.Commands.ToList();
EmbedBuilder embedBuilder = new EmbedBuilder();
foreach (CommandInfo command in commands)
{
// Get the command Summary attribute information
string embedFieldText = command.Summary ?? "No description available\n";
embedBuilder.AddField(command.Name, embedFieldText);
}
await ReplyAsync("Here's a list of commands and their description: ", false, embedBuilder.Build());
}
Summary
是由discord.net 提供的属性。它在技术上不提供特定功能,但是如果您有兴趣创建帮助命令或为命令 and/or 参数提供额外的元数据,那么您可以通过 CommandService 访问它们。
它们可以通过CommandInfo、ModuleInfo 或ParameterInfo 访问。这意味着您可以像这样在机器人的模块、命令或参数上使用该属性:
[Summary("The Game Module")]
public class ManualGameManagement : ModuleBase
{
[Command("Win", RunMode = RunMode.Sync)]
[Summary("Increments a user's win counter")]
public async Task WinAsync([Summary("The user")]params SocketGuildUser[] users)
{
//Do stuff...
}
}
如果您看一下 CommandService,您可以使用 DependencyInjection 使用属性或构造函数将其注入模块,然后使用它来访问 CommandService#Commands
或 CommandService#Modules
属性并检索摘要。
这也适用于类似于 Summary
的 Remarks
属性和接受多个字符串并用于让多个名称调用命令的 Alias
属性
我想在 discord.net
中创建一个帮助命令,我想知道 [Summary("")]
有什么作用。是否可以获取命令摘要? discord.net 中的摘要是否类似于 discord.js-commando
中的 description:
?我在 google 上进行了搜索,但找不到有关其功能的任何结果。
如果我想做一个帮助命令,我如何获得摘要?它有什么作用?
Summary
属性用于提供有关 类、方法或方法参数的一些信息。这本质上是一种 "metadata" 的形式,用于记录您的代码并允许您创建,例如,一个 "help" 命令,它自动从命令组中收集所有 Summary
属性,命令本身和命令方法的输入参数。
这将自动更新 "help" 命令,因此您不必手动执行。
展示用法的一些基本代码:
[Command("Help")]
public async Task Help()
{
List<CommandInfo> commands = _commandService.Commands.ToList();
EmbedBuilder embedBuilder = new EmbedBuilder();
foreach (CommandInfo command in commands)
{
// Get the command Summary attribute information
string embedFieldText = command.Summary ?? "No description available\n";
embedBuilder.AddField(command.Name, embedFieldText);
}
await ReplyAsync("Here's a list of commands and their description: ", false, embedBuilder.Build());
}
Summary
是由discord.net 提供的属性。它在技术上不提供特定功能,但是如果您有兴趣创建帮助命令或为命令 and/or 参数提供额外的元数据,那么您可以通过 CommandService 访问它们。
它们可以通过CommandInfo、ModuleInfo 或ParameterInfo 访问。这意味着您可以像这样在机器人的模块、命令或参数上使用该属性:
[Summary("The Game Module")]
public class ManualGameManagement : ModuleBase
{
[Command("Win", RunMode = RunMode.Sync)]
[Summary("Increments a user's win counter")]
public async Task WinAsync([Summary("The user")]params SocketGuildUser[] users)
{
//Do stuff...
}
}
如果您看一下 CommandService,您可以使用 DependencyInjection 使用属性或构造函数将其注入模块,然后使用它来访问 CommandService#Commands
或 CommandService#Modules
属性并检索摘要。
这也适用于类似于 Summary
的 Remarks
属性和接受多个字符串并用于让多个名称调用命令的 Alias
属性