我读过某个地方,我们可以使用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.cs
,Application_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/