我可以将自定义逻辑添加到Bot Framework PromptDialog以处理无效答案吗?

时间:2017-06-22 16:10:09

标签: c# botframework

在我的Bot Framework项目中,我使用PromptDialog显示一组预定义的有效选项,使用以下代码:

        var pickListOptions = new List<Option>();
        pickListOptions.AddRange(
            _currentQuestion.validValues.Select(x => Option.CreateOption(x)));

        PromptDialog.Choice(context, choiceSelected,
            pickListOptions,
            _currentQuestion.label,
             "Sorry, I didn't get that", 3, PromptStyle.Keyboard);

如果输入的自由格式答案不在有效值列表中,则会自动显示“抱歉,我没有得到”这一消息并重新提问。但是,我希望用不同的对话框处理某些无效的答案(即,如果用户请求帮助)。有没有办法用自定义逻辑覆盖自动重新启动?

1 个答案:

答案 0 :(得分:4)

这个问题可能有两个有效答案:

  1. 如果要更改验证,可以继承PromptChoice并覆盖TryParseMessageReceivedAsync方法。例如,CancelablePromptChoice
  2. 为了处理全局命令,例如帮助,而不是按照我在#1中解释的那样,您可能需要考虑使用Scorables。查看GlobalMessagesHandlers示例以了解更多信息。