C# 如何使用bot框架弹出到根目录对话框?

C# 如何使用bot框架弹出到根目录对话框?,c#,botframework,C#,Botframework,我正在基于bot框架为我的bot使用.Net后端。 在我的一个对话框中,我给用户返回根对话框的选项——或者至少,这是我试图做的,但没有成功。以下是我已经尝试过的: 调用context.Reset()-我了解到我不能在对话框中使用它;它引起了碰撞 Conversation.sendaync((IMessageActivity)context.Activity,()=>newrootDialog())-似乎什么都不做 理想情况下,我只想回到堆栈上的第一个,而不必硬编码RootDialog类型。正

我正在基于bot框架为我的bot使用.Net后端。 在我的一个对话框中,我给用户返回根对话框的选项——或者至少,这是我试图做的,但没有成功。以下是我已经尝试过的:

  • 调用
    context.Reset()
    -我了解到我不能在对话框中使用它;它引起了碰撞
  • Conversation.sendaync((IMessageActivity)context.Activity,()=>newrootDialog())
    -似乎什么都不做

理想情况下,我只想回到堆栈上的第一个,而不必硬编码
RootDialog
类型。

正如Ezequiel所指出的,context.Done()是如何结束当前对话框,并将控制权返回到调用对话框

作废Microsoft.Bot.Builder.Dialogs.Internals.IDialogStack.Done(R值)

完成当前对话框并将结果返回到父对话框

参数

 value: The value of the result.

context.Done还不够?但是如果对话框A将我带到B,将我带到C,该怎么办?Done()将我带到B,而不是A。或者我不必担心堆栈,直接转到我要转到的对话框?我不想转到调用对话框,而是转到根对话框。A->B->C
Done()
让我到B而不是A。有什么理由你不能先从c调用.Done(),然后再从B调用吗?我当然可以这样做,但我想知道这样做是否正确。似乎有点违反直觉。是的,在restful服务中管理对话框堆栈本质上是复杂的。上下文。从任何对话框调用(new RootDialog(),null)。