Используйте FormDialog в SDK v4 Microsoft Bot Framework - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть чат-бот, который я встроил в SDK v3.Я обновляю бота до sdkv4 и перемещаю его в core2.0.

   protected async Task<DialogTurnResult> BeginChildDialogAsync(DialogContext dc, OnTurnProperty onTurnProperty)
    {
        var activity = dc.Context.Activity;
        var actionValue = onTurnProperty.Intent;
        switch (onTurnProperty.Intent)
        {

            case "quickquote":
                await dc.Context.SendActivityAsync("THIS IS QUICK QUOTE!");
                var survey = new FormDialog<QQForm>(new QQForm(), QQForm.BuildForm, FormOptions.PromptInStart, null);
                dc.Call(survey, AfterSurvey);

Когда я вызываю форму, которую я создал с помощью formdialog.Я получаю сообщение об ошибке на dc.call(survey,AfterSurvey)

Код серьезности Описание Ошибка состояния подавления строки файла проекта CS1061 «DialogContext» не содержит определения для «Вызова» и отсутствует доступный метод расширения «Вызов», принимающий первыйможет быть найден аргумент типа 'DialogContext' (вам не хватает директивы using или ссылки на сборку?)

Как мне изменить форму журнала в sdk v4?

1 Ответ

1 голос
/ 02 апреля 2019

Bot Framework v4 больше не имеет концепции FormFlows. Способ архивирования это использование комбинации различных методов. Я бы порекомендовал прочитать следующее:

После ознакомления с этими документами у вас должно быть достаточно, чтобы начать адаптировать свой код.

Еще один довольно хороший пример сбора различных входных данных от пользователей представлен в официальном репозитории Bot Builder. Взгляните здесь .

Я бы пошел на ComponentDialog, содержащий WaterfallDialog с несколькими проверками. Таким образом, вы можете повторно использовать все, как вы привыкли делать это с потоками форм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...