BotData客户属性值在Bot框架中变为null,有什么不对?

时间:2017-05-17 13:53:49

标签: botframework formbuilder formflow

我正在研究MS Bot,现在陷入困境,我有两个问题

endPartitionKey

MessageController类调用(Chain.From(()=> new BotManager()) - >在BotManager()中列出所有意图 - >从Intents我跳转到特定形式,例如SampleForm,其中我有formbuilder。

1) How can I get conversation count in MessageController Post method?
2) The values of userData as mentioned in below code becomes null, when bot came back to messagecontroller for further conversation. My bot flow is as below.

2 个答案:

答案 0 :(得分:0)

1)我不知道你为什么要创建UserDetails usr对象,用它来签署EmailId,然后你就不会用它来做任何其他事情。

2)要获得您使用SetUserData进行的任务,您应该使用:

userData.GetProperty<string>("EmailId");

答案 1 :(得分:0)

在Rootialdialog(实现)IDialog中,您可以(并且可以是一个很好的做法)使用IDialogContext对象的UserDatamore info)属性来存储用户的信息谈话。

在下面的代码中,我尝试检索ConversationCount键,然后增加是否存在。然后我再设置结果值(在内部将值存储在BotState中)。

context.UserData.TryGetValue("ConversationCount", out int count = 0);
//Increment the message received from the user.
count++;

//Increment when the bot send a message to the user.
count++;
context.UserData.SetValue("ConversationCount", count);

您可以对电子邮件属性执行相同的操作。