C# 离开我的第二个对话框并继续使用RootDialog

C# 离开我的第二个对话框并继续使用RootDialog,c#,botframework,C#,Botframework,我有一个RootDialog,它包含三个路径:BTCDialog、LTCDialog和ethalog。 当我通过像BTCDialog这样的第一个对话框时,我执行我的代码,当我的对话框完成时,我需要退出(例如,因为我需要启动LTCDialog) 我和你一起通过BTC对话 await context.Forward(new BTCDialog(), this.ResumeAfterDialog, activity, CancellationToken.None); 当我完成时,我会和你一起去BTC

我有一个RootDialog,它包含三个路径:BTCDialog、LTCDialog和ethalog。 当我通过像BTCDialog这样的第一个对话框时,我执行我的代码,当我的对话框完成时,我需要退出(例如,因为我需要启动LTCDialog) 我和你一起通过BTC对话

await context.Forward(new BTCDialog(), this.ResumeAfterDialog, activity, CancellationToken.None);
当我完成时,我会和你一起去BTCDialog 完成(论点); 所以我在RootDialog中执行了我的函数

private async Task ResumeAfterDialog(IDialogContext context, IAwaitable<object> result)
        {
            var activity = await result as Activity;

            context.Wait(MessageReceivedAsync);
        }
专用异步任务ResumeAfterDialog(IDialogContext上下文,IAwaitable结果)
{
var活动=等待作为活动的结果;
Wait(MessageReceivedAsync);
}
我的问题是,当我的方法ResumeAfterDialog被执行时,我有一个信息(结果),其中包含一条我可以在我的RootDialog中使用的消息
如何编写我的方法ResumeAfterDialog以继续与我的用户对话?我想直接执行方法MessageReceivedAsync

假设您的结果类型为
IMessageActivity
,那么您可以调用
MessageReceivedAsync
方法,而不必等待下一条消息

private async Task ResumeAfterDialog(IDialogContext context, IAwaitable<object> result)
{
    var activity = await result as Activity;

    await MessageReceivedAsync(context, Awaitable.FromItem(activity));
}
专用异步任务ResumeAfterDialog(IDialogContext上下文,IAwaitable结果)
{
var活动=等待作为活动的结果;
Wait MessageReceivedAsync(上下文,waitiable.FromItem(活动));
}

作为旁注,如果您的
BTCDialog
对话框将始终返回
IMessageActivity
,您应该将对话框更新为IDialog,这样您就可以更新
ResumeAfterDialog
方法,以接收
IAwaitable
,而不是
IAwaitable
保存您进行转换。

假设您的结果类型为
IMessageActivity
,然后您可以调用
MessageReceivedAsync
方法,而不必等待下一条消息

private async Task ResumeAfterDialog(IDialogContext context, IAwaitable<object> result)
{
    var activity = await result as Activity;

    await MessageReceivedAsync(context, Awaitable.FromItem(activity));
}
专用异步任务ResumeAfterDialog(IDialogContext上下文,IAwaitable结果)
{
var活动=等待作为活动的结果;
Wait MessageReceivedAsync(上下文,waitiable.FromItem(活动));
}
作为旁注,如果您的
BTCDialog
对话框总是返回
IMessageActivity
,您应该将对话框更新为IDialog,这样您就可以更新
ResumeAfterDialog
方法以接收
IAwaitable
而不是
IAwaitable
来保存您进行演员阵容