C# bot框架中的PromptChoice显示';尝试次数太多';例外

C# bot框架中的PromptChoice显示';尝试次数太多';例外,c#,botframework,chatbot,C#,Botframework,Chatbot,我需要提示用户做出选择,并将选择的值保存在变量中,并在会话结束时使用它 var dialog = new PromptDialog.PromptChoice<string>( new string[] {"A new request", "Current Request" }, "Which one would you like?", "Sorry, that wans't a valid option", 1); context.Call(d

我需要提示用户做出选择,并将选择的值保存在变量中,并在会话结束时使用它

var dialog = new PromptDialog.PromptChoice<string>(
    new string[] {"A new request", "Current Request" }, 
       "Which one would you like?", 
       "Sorry, that wans't a valid option", 1);
context.Call(dialog, ChoiceReceivedAsync);
context.Wait(this.MessageReceivedAsync);       
}

private async Task ChoiceReceivedAsync(IDialogContext context, IAwaitable<object> result)
{  
   context.Wait(MessageReceivedAsync1); 
   return;
}

但是仍然结果不存储值。

删除
上下文。等待(this.MessageReceivedAsync)上下文后面的行。调用


context.Call
正在启动一个新对话框(
PromptChoice
),因此您无法同时执行这两项操作(启动一个新对话框并在当前对话框中等待)

寻求书籍/教程推荐的问题因堆栈溢出而脱离主题。要求我们推荐或查找书籍、工具、软件库的问题,教程或其他非站点资源对于堆栈溢出来说是非主题的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决问题所做的工作。我建议您阅读“我已经删除了选项PromptChoice,而我只是编写了PromptDialog.Choice”而没有“调用”,代码是可行的,但仍然会收到“ToomanyAttents”消息。这与执行上下文调用完全相同(幕后正在这样做). 从调用Choice的方法中删除context.Wait调用
var UserChose = await result;