【发布时间】:2019-07-25 07:13:46
【问题描述】:
我在 Bot Framework 上已经有几天时间了,非常新。我一直在努力理解管理状态,老实说,我只是不明白。看来这方面的框架和建议最近发生了很大变化,似乎没有任何明确的建议或示例。
这个page 说:
将信息保存到机器人状态。这将需要您设计 您的对话框可以访问机器人的状态属性访问器。
但是没有关于如何实现这一点的示例。
我的一个瀑布对话框中的最后一步如下所示:
AddStep(async (stepContext, cancellationToken) =>
{
var response = stepContext.Result as FoundChoice;
stepContext.Values["maxPrice"] = response;
return await stepContext.BeginDialogAsync(SearchDialog.Id, null, cancellationToken);
});
它基本上是在启动一个新对话框,我想通过传递对象将收集到的数据从该对话框传递到SearchDialog,或者最好将其保存到我的BotAccessors 然后SearchDialog 检索这个和使用它。
所有 MS 示例都有瀑布步骤,定义为 IBot 类上的 async 方法。这也不是他们建议将机器人对话框放在一起的方式,这使得该示例总体上毫无用处。
此外,似乎即使是 Microsoft v4 文档也已过时,例如 this doc,它仍在告诉我们使用已弃用的代码,例如:
options.State.Add(new ConversationState(storage));
不幸的是,目前这些文档似乎更令人困惑而不是对这个主题有帮助。管理这种状态的最佳方法是什么?
【问题讨论】:
-
您还需要帮助吗?
-
我还没有开始研究这个。到目前为止,似乎默认的内置对话框根本没有考虑到 DI,这是不幸的。此外,在使用之前构建对话集的方式也使 DI 存在问题。一旦我有更多时间研究它,我会用 A 更新这个 Q。
标签: c# botframework