命名空间“ FileToSend”不存在

时间:2019-08-15 17:49:09

标签: c# telegram-bot

嗨,我想用电报机器人发送照片,但我的VS无法识别“ FileToSend”,并且我的错误是:

int chatId = int.Parse(dgReport.CurrentRow.Cells[0].Value.ToString());
FileStream imageFile = System.IO.File.Open(txtFilePath.Text,FileMode.Open);

bot.SendPhotoAsync(chatId, new FileToSend("1234.jpg", imageFile), txtmessage.Text);
  

CS0246找不到类型或名称空间名称'FileToSend'(是   您缺少using指令或程序集引用吗?)

2 个答案:

答案 0 :(得分:0)

像您这样的声音对于Visual Studio和C#来说都是新手,所以我将分享一个一般性的建议。如果在Visual Studio中看到一条红色的波浪线,则出现编译错误。您的程序只有在修复后才能生成/运行。

这是我的提示。查找导致编译错误的代码(下面带有红色花键的文本)。右键单击文本,然后选择“快速操作和重构”。您会看到一些可以解决该问题的建议。

您所描述的问题通常可以 使用此功能解决。选项之一可能类似于“使用Telegram.Bot;”。如果选择它,它将自动将using语句放在文件顶部,并修复编译错误。这绝对是我使用快速操作和重构的第一大原因。

enter image description here

答案 1 :(得分:0)

实际上,这个问题还可以。我认为您可能只是混淆了已经找到并尝试过的示例,如果这样的话,这是一个诚实的错误。 FileToSend()函数与GitHub上ScottRFrost/TelegramBot上的(不建议使用)项目相关。

我假设您的其余示例与TelegramBots/Telegram.Bot程序包混在一起。如果您使用它,以下示例可能会为您提供更多帮助:

using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
using Telegram.Bot;
using Xunit;

namespace StackOverflowSupport
{
    public class Tests
    {
        [Fact]
        public async Task SendFileWithTelegramBot()
        {
            // Requires NuGet package `Telegram.Bot` (v15.0.0)
            var token = "YOUR_TOKEN";

            using (var http = new HttpClient())
            {
                int chatId = 42;
                var imageFile = File.Open("filepath", FileMode.Open);

                var bot = new TelegramBotClient(token, http);
                await bot.SendPhotoAsync(chatId, photo: imageFile, caption: "This is a Caption");
            }
        }
    }
}

如您所见,那里没有FileToSend(),这可能是造成问题的原因。

请注意,这只是为了帮助您朝正确的方向前进;它并不表示要在生产中使用的代码。尤其可以改善通过File.Open读取流的情况。