在 Microsoft Bot Framework 的 sdk v4 中使用 FormDialog

我有一个用 sdk v3 构建的聊天机器人。我正在将机器人更新为 sdkv4 并将其移动到 core2.0。


   protected async Task<DialogTurnResult> BeginChildDialogAsync(DialogContext dc, OnTurnProperty onTurnProperty)

    {

        var activity = dc.Context.Activity;

        var actionValue = onTurnProperty.Intent;

        switch (onTurnProperty.Intent)

        {


            case "quickquote":

                await dc.Context.SendActivityAsync("THIS IS QUICK QUOTE!");

                var survey = new FormDialog<QQForm>(new QQForm(), QQForm.BuildForm, FormOptions.PromptInStart, null);

                dc.Call(survey, AfterSurvey);

当我调用使用 formdialog 构建的表单时。我得到错误dc.call(survey,AfterSurvey)


严重性代码描述项目文件行抑制状态错误 CS1061 'DialogContext' 不包含 'Call' 的定义并且找不到接受类型为 'DialogContext' 的第一个参数的可访问扩展方法 'Call'(您是否缺少 using 指令或装配参考?)


如何在 sdk v4 中更改我的表单对话框?


慕码人8056858
浏览 123回答 1
1回答

开满天机

Bot Framework v4 不再有 FormFlows 的概念。存档的方法是结合使用各种技术。我建议阅读以下内容:对话框类型解析和验证输入实施顺序对话流阅读完这些文档后,您应该有足够的能力开始调整您的代码。官方 bot builder 示例 repo 中提供了另一个收集用户各种输入的很好的例子。看看这里。我会选择一个ComponentDialog包含WaterfallDialog一些验证的。通过这种方式,您可以重复使用表单流中惯用的所有内容。
打开App,查看更多内容
随时随地看视频慕课网APP