在Microsoft机器人中,我想构建一个通用对话框。 为此,我需要动态构建瀑布步骤。
这个想法: 从主对话框调用
return await stepContext.BeginDialogAsync(nameof(GenericDialog), problemType);
在 GenericDialog 的构造函数中:
switch ( problemType)
{
case problem1:
BuildWaterfallList1();
break;
case "problem2:
BuildWaterfallList2();
break;
etc...
}
如果我们有 10 种产品和 10 种问题类型,它们都非常相似,我们不希望创建 100 个不同的对话框。
我们使用上述方法遇到的问题是,无法从 GenericDialog 的构造函数访问在 BeginDialogAsync 中传递的参数。
我们如何实现这一目标?
最终的答案是没有办法使用/动态瀑布。
但是,有一些解决方法,其他方法可以实现它。 特别是我使用了这个例子 https://github.com/BotBuilderCommunity/botbuilder-community-dotnet
并设法根据用户输入结果分支/循环到我选择的后续步骤。