在Microsoft Bot Framework的SDK v4中使用FormDialog

时间:2019-04-01 20:14:31

标签: c# botframework bots chatbot

我有一个内置于sdk v3中的聊天机器人。我将Bot更新为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?

1 个答案:

答案 0 :(得分:1)

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

阅读完本文档后,您应该有足够的能力开始改编代码。

官方的bot构建器示例存储库中提供了另一个很好的示例,可以收集用户的各种输入。看看here

我会去一个ComponentDialog,其中包含一个经过验证的WaterfallDialog。这样,您就可以重复使用表单流程中的所有内容。