Все эти API пропали. Вот объяснения их замены в V4:
context.Wait (...)
Этот метод использовался, чтобы сообщить диалоговой системе, какой метод вызывать следующий в вашем классе, когда новая активность прибыла, а теперь исчезла. Вместо этого вы теперь создаете подкласс Dialog
и переопределяете несколько методов для различных событий жизненного цикла:
BeginDialogAsync
- вызывается, когда диалог впервые помещается в стек с помощью кода бота или другого диалога, вызывающего BeginDialogAsync
для DialogContext
.
ContinueDialogAsync
- вызывается, когда приходит новое действие, и бот вызывает ContinueDialog
на DialogContext
.
ResumeDialogAsync
- вызывается, когда завершено другое диалоговое окно в стеке, а диалоговое окно, которое ранее находилось в стеке, теперь находится наверху стека.
RepromptDialogAsync
- вызывается, когда сделан явный запрос на повторную опровержение пользователя. По сути, это способ сообщить диалоговому окну, что ничего не изменилось, но что его следует продолжить с того места, где он остановился, отправив все действия, которые он отправил в последний раз.
EndDialogAsync
- вызывается, когда диалоговое окно указало, что оно выполнено и выталкивается из стека.
context.Done () /. Сбой ()
Это был один из способов, которым вы сообщали о состоянии вашего диалога, но теперь это достигается путем возврата DialogTurnResult
из большинства вышеупомянутых методов жизненного цикла. Одно из свойств называется Status
и имеет тип DialogTurnStatus
, значения которого указывают на текущее состояние диалога. Например:
Waiting
- диалоговое окно отправило некоторые действия и ожидает большего ввода и должно оставаться на вершине стека.
Complete
- диалог завершил свою работу и должен быть завершен и вытолкнут из стека. Когда это состояние возвращается, вызывающие могут также исследовать выходные данные диалогового окна (если оно есть), которое передается обратно через свойство DialogTurnResult::Result
.
Cancelled
- диалог был частично отменен во время его работы.
context.PostAsync () / Conversation.SendAsync
Они оба были использованы для ответа пользователю. И то, и другое теперь заменяется вызовом SendActivityAsync
для ITurnContext
, который доступен через свойство Context
экземпляра DialogContext
, который передается большинству вышеупомянутых методов жизненного цикла в качестве параметра. ПРИМЕЧАНИЕ: пара методов жизненного цикла фактически получает параметр ITurnContext
напрямую, а затем вы просто используете его.