【发布时间】:2018-02-15 13:23:59
【问题描述】:
在我的机器人中的一个对话框中,我在 ConversationData 中存储了一个标志值,如下所示:
context.ConversationData.SetValue("SomeFlag", true);
稍后,我需要在 MessagesController 中检查该标志,在消息被分派到对话框之前。根据this previous question,我尝试通过 StateClient 检索 ConversationData,如下所示:
public async Task<HttpResponseMessage> Post([FromBody] Activity incomingMessage)
{
StateClient stateClient = incomingMessage.GetStateClient();
BotData userData = await stateClient.BotState.GetConversationDataAsync(message.ChannelId, message.Conversation.Id);
bool finishedQuote = userData.GetProperty<bool>("SomeFlag");
//...
// do conditional logic, then dispatch to a dialog as normal
}
但是,在运行时,userData 变量包含一个 BotData 对象,其中userData.Data 为空,我无法通过GetProperty 检索任何存储的标志。我在relevant documentation 中没有看到任何有助于阐明这个问题的内容——我在这里可能做错了什么?我有什么误解吗?
【问题讨论】:
标签: c# botframework