C# BotFramework:你能从main对话框分支到几个可能的对话框吗?

C# BotFramework:你能从main对话框分支到几个可能的对话框吗?,c#,visual-studio,dialog,botframework,chatbot,C#,Visual Studio,Dialog,Botframework,Chatbot,我正在用c#和visual studio中的MS Bot框架制作一个多对话框聊天机器人 我有一个主对话框文件,根据用户输入的内容,它应该分支到两个可能的其他对话框文件 然而,我似乎无法成功地切换到两个对话框,现在我怀疑这是否可能 这是我的代码,请注意,我使用BeginDialogAsync方法在文件之间切换。它适用于第一个对话框(vpn),但不适用于第二个对话框(sauvegarde) 我认为这是因为您必须从一个对话框转到另一个对话框,并且不能从一个类执行多个分支?我在文档中找不到任何解释 p

我正在用c#和visual studio中的MS Bot框架制作一个多对话框聊天机器人

我有一个主对话框文件,根据用户输入的内容,它应该分支到两个可能的其他对话框文件

然而,我似乎无法成功地切换到两个对话框,现在我怀疑这是否可能

这是我的代码,请注意,我使用BeginDialogAsync方法在文件之间切换。它适用于第一个对话框(vpn),但不适用于第二个对话框(sauvegarde)

我认为这是因为您必须从一个对话框转到另一个对话框,并且不能从一个类执行多个分支?我在文档中找不到任何解释

private async Task<DialogTurnResult> MiddleStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
{
    if (((string)stepContext.Result).ToLower().Contains("vpn"))
    {
        await stepContext.Context.SendActivityAsync(MessageFactory.Text($"Ah d'accord", InputHints.ExpectingInput)); //tr: oh ok 

        await stepContext.Context.SendActivityAsync(MessageFactory.Text($"{(string)stepContext.Result} ? Il me semble que votre problème est lié a votre vpn..."), cancellationToken); // it seems your problem is linked with your vpn

        await stepContext.Context.SendActivityAsync(MessageFactory.Text($"Vous n'arrivez pas à vous connecter à distance? Je vais vous poser quelques questions afin de mieux vous aider à résoudre ce problème."), cancellationToken); // tr: i will ask you some questions 
        return await stepContext.BeginDialogAsync((nameof(VPNDialog)), null, cancellationToken);

    }
    else if (((string)stepContext.Result).ToLower().Contains("sauvegard"))
    {
        await stepContext.Context.SendActivityAsync(MessageFactory.Text($"{(string)stepContext.Result} ? Il me semble que votre problème est lié a la sauvegarde de vos données..."), cancellationToken); // oh it seems your problem is to do with saving your data

        return await stepContext.BeginDialogAsync((nameof(SauvegardeDialog)), null, cancellationToken);
    }
    else
    {
        await stepContext.Context.SendActivityAsync(MessageFactory.Text($"Je ne crois pas pouvoir règler ce problème, entrer n'importe quoi pour revenir au menu principale où vous pourriez reformulez votre demande. ", InputHints.ExpectingInput)); //I don't think I can solve your problem sorry
        return await stepContext.CancelAllDialogsAsync(cancellationToken);
    }
}
有没有什么地方我遗漏了?? 以下是一些示例对话:

成功:

失败:


我将感谢任何帮助!提前谢谢

在我将SauvgardeDialog文件中的名称空间从

namespace MultiTurnPromptDialog.Dialogs


我真的不明白为什么你能展示一下你的Sauvegarde对话吗?问题似乎就在那里
namespace MultiTurnPromptDialog.Dialogs
namespace Microsoft.Dialogs