我在 botframework 中创建了一个表单流。我想更改确认选项,默认情况下需要“是”和“否”。但我希望它继续进行,而不是“是”,即使用户输入“确定”、“是”、“是”等。我如何添加确认选项
您需要将新条款添加到Yes
FormBuilder 配置的数组。就像是:
public static IFormBuilder<T> CreateCustomForm<T>()
where T : class
{
var form = new FormBuilder<T>();
var yesTerms = form.Configuration.Yes.ToList();
yesTerms.Add("Ya");
form.Configuration.Yes = yesTerms.ToArray();
return form;
}
然后你可以这样使用:
return CreateCustomForm<MyForm>()
其原因如下:
The 确认 https://github.com/Microsoft/BotBuilder/blob/master/CSharp/Library/Microsoft.Bot.Builder/FormFlow/Confirmation.cs字段,设置它的输入布尔值 https://github.com/Microsoft/BotBuilder/blob/master/CSharp/Library/Microsoft.Bot.Builder/FormFlow/Confirmation.cs#L59。在某个时刻,一个识别器是为字段定义的 https://github.com/Microsoft/BotBuilder/blob/master/CSharp/Library/Microsoft.Bot.Builder/FormFlow/Field.cs#L701,基于它的类型。在这种情况下,Confirmation
字段将使用识别布尔 https://github.com/Microsoft/BotBuilder/blob/master/CSharp/Library/Microsoft.Bot.Builder/FormFlow/Recognize.cs#L460识别器。
识别器使用Yes/No https://github.com/Microsoft/BotBuilder/blob/master/CSharp/Library/Microsoft.Bot.Builder/FormFlow/Recognize.cs#L470-L473表单配置中定义的数组(最初它们被检索到 https://github.com/Microsoft/BotBuilder/blob/master/CSharp/Library/Microsoft.Bot.Builder/FormFlow/IFormBuilder.cs#L301来自资源文件 https://github.com/Microsoft/BotBuilder/blob/master/CSharp/Library/Microsoft.Bot.Builder/Resource/Resources.en.resx#L92)为了做解析 https://github.com/Microsoft/BotBuilder/blob/master/CSharp/Library/Microsoft.Bot.Builder/FormFlow/Recognize.cs#L476.
当。。。的时候Confirmation
字段添加到表单中,还添加了ConfirmStep步骤 https://github.com/Microsoft/BotBuilder/blob/master/CSharp/Library/Microsoft.Bot.Builder/FormFlow/FormBuilder.cs#L153. The 确认步骤 https://github.com/Microsoft/BotBuilder/blob/master/CSharp/Library/Microsoft.Bot.Builder/FormFlow/Steps.cs#L526是游戏后期的那个最终调用识别器 https://github.com/Microsoft/BotBuilder/blob/master/CSharp/Library/Microsoft.Bot.Builder/FormFlow/Steps.cs#L564进行术语的匹配和解析。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)