【问题标题】:Use FormDialog in sdk v4 of Microsoft Bot Framework在 Microsoft Bot Framework 的 sdk v4 中使用 FormDialog
【发布时间】:2019-08-23 01:52:17
【问题描述】:

我有一个在 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”类型的(您是否缺少使用 指令还是程序集引用?)

如何在 sdk v4 中更改我的 formdialog?

【问题讨论】:

  • FormFlow 已从 v4 中删除,因此如果您要更新,则需要对其进行调整。
  • 更新到什么?你能指出我正确的方向吗?

标签: c# botframework bots chatbot


【解决方案1】:

Bot Framework v4 不再具有 FormFlows 的概念。存档的方法是使用各种技术的组合。我建议阅读以下内容:

阅读完这些文档后,您应该有足够的能力开始调整您的代码了。

官方 bot builder 示例 repo 中提供了另一个从用户那里收集各种输入的相当好的示例。看看here

我会选择包含 WaterfallDialogComponentDialog 并进行一些验证。通过这种方式,您可以像以前使用表单流一样重用所有内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-21
    • 1970-01-01
    • 2021-03-27
    相关资源
    最近更新 更多