Я работаю с фреймворком ботов уже некоторое время, и меня всегда беспокоило, что RetryPrompt показывается только один раз.
Я просмотрел исходный код github для конструктора ботов и, похоже,что сообщение действительно отправляется, но не отображается в эмуляторе Bot Framework.
Фрагмент из примера MultiTurnPromptBot:
var promptOptions = new PromptOptions
{
Prompt = MessageFactory.Text("Please enter your age."),
RetryPrompt = MessageFactory.Text("The value entered must be greater than 0 and less than 150."),
};
return await stepContext.PromptAsync(nameof(NumberPrompt<int>), promptOptions, cancellationToken);
Я ожидал бы получить RetryPrompt при каждом сбое моего сообщенияпроверка. Как вы можете видеть здесь сообщение "Введенное значение должно быть больше 0 и меньше 150" отображается только один раз. Но в журнале фактически отображаются оба сообщения.
Я полагаю, что эмулятор запутался, потому что оба сообщения на самом деле имеют одинаковый идентификатор (как вы можете видеть здесь и здесь ).
Кто-нибудь знает, происходит ли это и на других каналах и / или это ошибка / функция?