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

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

var pickListOptions = new List(); 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. 如果要更改validation,可以从PromptChoiceinheritance并覆盖TryParseMessageReceivedAsync方法。 例如, CancelablePromptChoice
  2. 对于处理全局命令(如帮助)而不是执行我在#1中解释的操作,您可能需要考虑使用Scorables 。 查看GlobalMessagesHandlers示例以了解更多信息。