C# BotFramework Prompt.Confirm 显示太多尝试异常

标签 c# botframework

我最近使用 Microsoft 的 botframework 开发了一个聊天机器人。我正在使用 prompt.confirm 接受用户的是/否输入,但是当我写基本的是/否时它显示太多尝试异常。我不希望我的机器人显示太多尝试异常,而是我想在内部处理它。这是我的代码。

[LuisIntent("None")]
public async Task NoneIntent(IDialogContext context, LuisResult result)
{
    try
    {
        PromptDialog.Confirm(context, NextQuestionAsync, QuestionPrompt, attempts: 1, promptStyle: PromptStyle.Auto);
    }
    catch (Exception ex)
    {
        await context.PostAsync("Something really bad happened.");
    }
}

public async Task NextQuestionAsync(IDialogContext context, IAwaitable<bool> result)
{
    try
    {
        if (await result)
        {
            await context.PostAsync($"Ok, alarm 0 disabled.");
            //context.Wait(NoneIntent);
        }
        else
        {
            await context.PostAsync("You Said No");
        }
    }
    catch (Exception e)
    {

    }
}

最佳答案

您可以通过在 PromptOptions constructor 中传递您自己的字符串来覆盖 TooManyAttempts 消息, 稍后使用 here显示消息。

此外,请记住,在 TooManyAttempts 异常的情况下,处理它的方法是在 ResumeAfter 方法的 try/catch 中(在本例中您的 NextQuestionAsync 方法)围绕着 await 而不是在调用方方法中。

关于C# BotFramework Prompt.Confirm 显示太多尝试异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42071335/

相关文章:

c# - SQL Server 列到组合框?

azure - Web 部署任务失败。 ERROR_USER_UNAUTHORIZED

botframework - Google Dialogflow 中的 Multi-Tenancy

botframework - 无法在 Teams 的自适应卡中显示超过 6 个自适应操作

c# - 在 LuisIntent 方法中处理自适应卡按钮

c# - 此请求的授权已被拒绝 - 桌面到 ASP.NET Web API

c# - 将从部门检索到的 SQL 值分配给 session ["UserAuthentication"]

botframework - FormFlow 为字符串字段定义选项

c# - 如何在不跳过的情况下精确跟踪鼠标坐标

c# - 在c#中打印xml节点列表