【问题标题】:Taking simple user input inside a method in Bot Framework在 Bot Framework 的方法中获取简单的用户输入
【发布时间】:2016-06-07 06:26:43
【问题描述】:

有没有一种简单的方法可以将 Microsoft Bot Framework 中的用户消息传递到字符串变量 (c#) 中?

本质上,我想在方法的中途将下一条用户消息作为输入,并继续执行相同的方法,并将消息存储为变量。

我想避免使用 PromptDialog 的过程,修改封闭方法以适应 PromptDialog 参数(因为我的方法将有 LuisResult 而不是 IAwaitable...)等等。

我想要的是相当于通过控制台获取用户输入,但在这种情况下,我将通过 bot 框架界面进行操作 - 无需退出或修改我当前使用的方法。不需要任何花哨的东西,比如重试等等。

编辑:我也不希望/不需要消息通过 LUIS(MessageReceived 也将每条消息都通过 LUIS)

谢谢!

【问题讨论】:

    标签: c# botframework azure-language-understanding


    【解决方案1】:

    目前没有办法做到这一点。机器人必须是无状态的,机器人的所有状态必须在IBotDataBag 中明确维护。您希望做的实际上是创建一个引用局部变量的匿名方法。生成的闭包是不可序列化的。

    【讨论】:

    • 那么有没有办法在维护 Luisresult 变量的同时处理 PromptDialogs?如果我可以将控制权传递给方法但也可以访问我的 LuisResult 结果变量(它的私有全局实例由于序列化而给我带来麻烦),我的问题将得到解决。谢谢
    • Message 类具有三个可用于此目的的属性:BotUserData、BotConversationData、BotPerUserInConversationData。您可以在此处找到更多详细信息:docs.botframework.com/connector/tracking-bot-state/…
    猜你喜欢
    • 1970-01-01
    • 2011-12-11
    • 2014-12-14
    • 2018-03-17
    • 2021-03-06
    • 1970-01-01
    • 2020-12-26
    • 2020-10-04
    相关资源
    最近更新 更多