使用Microsoft Bot Framework我正在设置会话和用户管理的状态和数据。
我用过
var state = message.GetBotPerUserInConversationData<ConversationState>("State");
if( state == null)
{
message.SetBotPerUserInConversationData("State", new ConversationState());
}
和
var data = context.PerUserInConversationData;
ConversationState state;
var ret = data.TryGetValue("State", out state);
得到我的州。 说我应该知道属性,我创建的状态调用Count属性我获得的更多然后是我创建的键/值对。
如何获取完整列表?似乎没有办法,可能已经在其内部的对象,其名称未知有信息,我需要使我的自定义状态无用。
由于
答案 0 :(得分:0)
当您调用context.PerUserInConversationData时,您将获得实现IBotDataBag的对象(通常是JObjectBotData类的实例),并且无法以编程方式访问其中的字段。
如果您想了解最初将哪些字段插入到此DataBag中,您可以查看Bot Framework Source Code,或构建您自己的框架副本,该副本允许您访问JObjectBotData中的键。
如果要在代码中跟踪放在包中的字段,可以创建一个显式跟踪这些字段并将其列表存储在DataBag中的包装器。