botframeworkv3对话框返回卡

botframeworkv3对话框返回卡,botframework,Botframework,我正在钻研bot框架v3中所有伟大的新东西。我正在尝试做的一件事是创建一个对话框,用卡片进行响应。但我找不到一个样本来说明如何做到这一点 我试着一个人胡闹,但运气不太好。在大多数对话框的代码示例中,您将在帖子中获得的活动对象强制转换为IMessageActivity类。然后,当你回复时,你只需要简单的文本。所有带有卡片的示例都让您创建了一个活动类。但是,由于我已将其强制转换为IMessageActivity,因此无法使用CreateReply方法。如果我不能这样做,那么当我创建一个活动时,我会得

我正在钻研bot框架v3中所有伟大的新东西。我正在尝试做的一件事是创建一个对话框,用卡片进行响应。但我找不到一个样本来说明如何做到这一点

我试着一个人胡闹,但运气不太好。在大多数对话框的代码示例中,您将在帖子中获得的活动对象强制转换为IMessageActivity类。然后,当你回复时,你只需要简单的文本。所有带有卡片的示例都让您创建了一个活动类。但是,由于我已将其强制转换为IMessageActivity,因此无法使用CreateReply方法。如果我不能这样做,那么当我创建一个活动时,我会得到一个错误,即“activityId”不能为null

任何建议、想法或见解都将不胜感激


提前谢谢

我在对话框中添加了以下代码:

    protected override async Task MessageReceived(IDialogContext context, IAwaitable<IMessageActivity> item)
    {
        _message = (Activity)await item;
        await base.MessageReceived(context, item);
    }

    [field: NonSerialized()]
    private Activity _message;

    [LuisIntent("Ping")]
    public async Task Ping(IDialogContext context, LuisResult result)
    {
        Activity replyToConversation = _message.CreateReply("Should go to conversation, with a carousel");
        replyToConversation.Recipient = _message.From;
        replyToConversation.Type = "message";
        replyToConversation.AttachmentLayout = "carousel";
        .
        .
        .
        await context.PostAsync(replyToConversation);
        context.Wait(MessageReceived);
    }

我在模拟器中得到了它,但在Skype中没有,但我想我的问题是这一个

感谢非串行化。我不知道我们能不能那样做。