我通过Bot Framework创建了一个聊天机器人,我实现了一个重置选项,以便删除对用户的对话e授权以开始新的对话。
// MessageController.cs
public async Task Post([FromBody]Activity activity)
{
await Conversation.SendAsync(activity, () => new RootDialog().DefaultIfException());
return Request.CreateResponse(HttpStatusCode.OK); <- Stack is empty Exception
}
// RootDialog.cs
private void ShowMenuOptions(IDialogContext context)
{
var optionList = new List<string>() { "Info", "Support", "Reset" };
string prompt ="How can I help you?";
PromptDialog.Choice(context, this.OnOptionSelected, (IEnumerable<string>)optionList,
prompt, retry, attempts);
}
private async Task OnOptionSelected(IDialogContext context, IAwaitable<string> result)
{
try
{
string optionSelected = await result;
switch (optionSelected)
{
case "Reset":
context.Reset();
context.ConversationData.Clear();
context.PrivateConversationData.Clear();
context.UserData.Clear();
break;
}
}
}
当用户选择重置选项时,机器人回答“抱歉,我的机器人代码有问题”。 调试代码我发现异常在context.Reset()。
之后触发有人可以帮我解决吗?