使用休息服务的Bot Framework状态管理

时间:2018-03-14 08:55:55

标签: c# botframework

在状态管理的文档中,提到我们可以使用rest服务进行状态管理,而不是覆盖IBotDataStore

有人可以提供相同的方法。

我有一个数据库,无法从机器人代码直接访问。因此,我打算为数据库构建一个Web服务并将状态存储在数据库中。

1 个答案:

答案 0 :(得分:2)

根据我对框架的理解,重点是创建一个实现IBotDataStore<BotData>的类,然后像为TableBotDataStoreSqlBotDataStore一样注册您的类。

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存储的制作方法,例如TableBotDataStorehere