You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Telegram.Bot v17.x版本找不到MessageEventArgs类的问题咨询

问题原因

Telegram.Bot 从v16.0.0版本开始就正式废弃了传统的基于EventArgs的事件订阅模式,v17.0.0-alpha.3作为预览版本已经完全移除了MessageEventArgs、CallbackQueryEventArgs等旧版Args类,所以你无法在Telegram.Bot.Args命名空间下找到对应类型。

解决方案

你可以按照以下两种方案处理:

  • 方案一:降级到支持事件模式的旧版本
    如果你仍然希望使用MessageEventArgs相关的事件写法,可以将Telegram.Bot包版本降级到v15.x及以下版本,这一版本范围还保留了完整的旧事件机制。
  • 方案二:适配v16+版本的新回调写法
    新版本采用直接传递更新对象的回调模式,不需要依赖EventArgs类,示例代码如下:
    using Telegram.Bot;
    using Telegram.Bot.Types;
    
    var botClient = new TelegramBotClient("你的Bot Token");
    
    // 配置接收更新的回调
    botClient.StartReceiving(
        updateHandler: HandleUpdateAsync,
        pollingErrorHandler: HandlePollingErrorAsync
    );
    
    async Task HandleUpdateAsync(ITelegramBotClient botClient, Update update, CancellationToken cancellationToken)
    {
        // 在这里处理消息更新,原来MessageEventArgs里的Message对象直接从update里取
        if (update.Message is not { } message)
            return;
    
        // 后续处理逻辑和之前一致
        if (message.Text is not { } text)
            return;
    
        Console.WriteLine($"收到来自 {message.Chat.Id} 的消息:{text}");
    }
    
    Task HandlePollingErrorAsync(ITelegramBotClient botClient, Exception exception, CancellationToken cancellationToken)
    {
        // 处理错误逻辑
        Console.WriteLine(exception.Message);
        return Task.CompletedTask;
    }
    
    原来MessageEventArgs承载的所有信息都可以直接从Update参数中获取,不需要额外封装层,写法更简洁。

内容的提问来源于stack exchange,提问作者VladislavKondratenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 14:06:03