在我的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);
如果输入的自由格式答案不在有效值列表中,则会自动显示“抱歉,我没有得到”这一消息并重新提问。但是,我希望用不同的对话框处理某些无效的答案(即,如果用户请求帮助)。有没有办法用自定义逻辑覆盖自动重新启动?
答案 0 :(得分:4)
这个问题可能有两个有效答案:
PromptChoice
并覆盖TryParse
或MessageReceivedAsync
方法。例如,CancelablePromptChoice Scorables
。查看GlobalMessagesHandlers示例以了解更多信息。