嗨,我想用电报机器人发送照片,但我的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指令或程序集引用吗?)
答案 0 :(得分:0)
像您这样的声音对于Visual Studio和C#来说都是新手,所以我将分享一个一般性的建议。如果在Visual Studio中看到一条红色的波浪线,则出现编译错误。您的程序只有在修复后才能生成/运行。
这是我的提示。查找导致编译错误的代码(下面带有红色花键的文本)。右键单击文本,然后选择“快速操作和重构”。您会看到一些可以解决该问题的建议。
您所描述的问题通常可以 使用此功能解决。选项之一可能类似于“使用Telegram.Bot;”。如果选择它,它将自动将using语句放在文件顶部,并修复编译错误。这绝对是我使用快速操作和重构的第一大原因。
答案 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
读取流的情况。