无法从用法中推断出方法'CommandService.AddModuleAsync <t>(IServiceProvider)'的类型参数

时间:2019-03-09 11:30:48

标签: c# bots discord

我正在尝试使用本教程https://www.youtube.com/watch?v=egq26JwyJkc(11:47)和相同的代码制作一个机器人,但出现此错误

The type arguments for method 'CommandService.AddModuleAsync<T>(IServiceProvider)' cannot be inferred from the usage. Try specifying the type arguments explicitly.

即使具有编程知识,也很难理解这里发生的事情...

这是我的代码

using Discord.Commands;
using Discord.WebSocket;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace forTesting
{
    public class CommandHandler
    {
        private DiscordSocketClient _client;

        private CommandService _service;

        public CommandHandler(DiscordSocketClient client)
        {
            _client = client;

            _service = new CommandService();

            _service.AddModuleAsync(Assembly.GetEntryAssembly());
        }
    }
}

2 个答案:

答案 0 :(得分:0)

这意味着您需要指定T是什么。

尝试根据通用方法限制指定T。

答案 1 :(得分:0)

聚会晚了一点,但希望有人会发现此信息对上述问题有所帮助。在构建更新模块后,将其添加到CommandService时以及执行命令时。因此,模块的构建阶段现在需要IServiceProvider。

所以您要寻找的答案是:

enums