我读过某个地方,我们可以使用IScorable.cs来实现全局可用的命令,例如在聊天流程的任何地方键入“设置”以打开设置对话框。但是似乎没有有关如何使用它的文档。

请帮忙。

最佳答案

没错,要在BotFramework中使用全局命令,实施IScorable.cs是必经之路。

拥有一个IScorable基本上是一个两步过程:


写你的IScorable
在BotFramework的Autofac容器中注册您的IScorable


BotFramework将首先遍历所有IScorables,以查看其中的任何一个是否“获胜”(又称他们是否会做某事),以及是否没有人处理该消息;然后它将继续将消息发送到对话框。

关于如何编写IScorable,最好的方法是看一些例子:


Settings scorable(来自ContosoFlowers sample)。发送“设置”消息后,它将启动一个新对话框。
DeleteProfile scorable(出现在BotFramework中)。它会删除PrivateConversationData和UserData数据包,并在发送“ / deleteprofile”消息时重置堆栈。
Alarm scorable(来自AlarmsBot示例)。如果消息与任何预定义动词匹配,它将调用服务以执行操作。


关于如何注册IScorable,建议您在Global.asax.csApplication_Start方法中执行以下操作:

var builder = new ContainerBuilder();

builder.RegisterType<SettingsScorable>()
    .As<IScorable<IActivity, double>>()
    .InstancePerLifetimeScope();

builder.Update(Conversation.Container);


这说明了如何在SettingsScorable容器中注册ContosoFlowers的Autofac

关于c# - 如何在Microsoft Bot Framework中使用全局命令?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41737558/

10-12 01:21