在状态管理的文档中,提到我们可以使用rest服务进行状态管理,而不是覆盖IBotDataStore
。
有人可以提供相同的方法。
我有一个数据库,无法从机器人代码直接访问。因此,我打算为数据库构建一个Web服务并将状态存储在数据库中。
答案 0 :(得分:2)
根据我对框架的理解,重点是创建一个实现IBotDataStore<BotData>
的类,然后像为TableBotDataStore
或SqlBotDataStore
一样注册您的类。
IBotDataStore<BotData>
接口在BotBuilder的GitHub项目here中定义。
使用此界面,您将必须实现一些方法:
Task<T> LoadAsync(IAddress key, BotStoreType botStoreType, CancellationToken cancellationToken)
以获取您的数据
Task SaveAsync(IAddress key, BotStoreType botStoreType, T data, CancellationToken cancellationToken);
以保存您的数据
Task<bool> FlushAsync(IAddress key, CancellationToken cancellationToken);
以便刷新您的数据
它将在您的REST API调用的那些方法中发生。
您可以查看BotBuilder-Azure GitHub项目中Azure存储的制作方法,例如TableBotDataStore
,here