无法在 MS 机器人框架中向邮件添加附件:对象引用未设置为对象的实例

本文关键字:对象引用 设置 实例 对象 添加 机器人 MS 框架 | 更新日期: 2023-09-27 17:56:24

我正在使用MS Bot Framework编写一个facebook机器人。我能够成功发送文本回复,但我似乎无法发送图片。

Microsoft这里有以下示例 - http://docs.botframework.com/en-us/csharp/builder/sdkreference/attachments.html

replyMessage.Attachments.Add(new Attachment()
{
    ContentUrl = "https://upload.wikimedia.org/wikipedia/en/a/a6/Bender_Rodriguez.png",
    ContentType = "image/png",
    Name = "Bender_Rodriguez.png"      
});

该代码对我不起作用 - 它抛出此错误:

对象引用未设置为对象的实例。

Bot_Application1.MessagesController.d__0.MoveNext()
在 C:''Users------''Dropbox''code''Bot Application1''Bot
应用程序 1''控制器''消息控制器.cs:第 92 行

第 92 行是我称之为 .Attachments.Add() 方法。

我尝试修改代码以确保它内部没有空属性,所以我添加了非空内容和缩略图,但这也不起作用(有或没有这两个参数)。调用 Add() 方法时,它与上述错误完全相同。

Activity reply3 = activity.CreateReply("blah");
Attachment pic = new Attachment();
pic.ContentUrl = "https://upload.wikimedia.org/wikipedia/en/a/a6/Bender_Rodriguez.png";
pic.ContentType = "image/png";
pic.Name = "Bender_Rodriguez.png";
pic.Content = "Test";
pic.ThumbnailUrl = pic.ContentUrl;
reply3.Attachments.Add(pic);
await connector.Conversations.ReplyToActivityAsync(reply3);

我做错了什么?

无法在 MS 机器人框架中向邮件添加附件:对象引用未设置为对象的实例

事实证明,您需要添加文档中未提及的行:

                reply3.Attachments = new List<Attachment>();

初始化附件后,它工作正常。