我有一个我在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”的定义,并且没有可访问的扩展方法“Call”接受类型为“DialogContext”的第一个参数(您是否缺少using指令或装配参考?)
如何在sdk v4中更改我的formdialog?
Bot Framework v4不再具有FormFlows的概念。存档的方法是使用各种技术的组合。我建议阅读以下内容:
完成这些文档后,您应该有足够的时间来开始调整您的代码。
在官方机器人构建器样本仓库中提供了另一个从用户收集各种输入的相当好的示例。看看here。
我会去找一个含有ComponentDialog
并带有一些验证的WaterfallDialog
。通过这种方式,您可以重用所有内容,就像您习惯使用表单流一样。