Bot Framework是否允许在从Scorable返回对话框时运行定义逻辑?

时间:2017-08-02 21:56:50

标签: c# botframework

我正在工作的情况下,我有一个类似于这个简化示例的对话框:

public class ExampleDialog : IDialog<bool> {
    public async Task StartAsync(IDialogContext context)
    {
        await context.PostAsync($"{What is your name?");

        context.Wait(this.MessageReceivedAsync);
    }

    private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> result)
    {
        var message = await result;
        // do some validation of the answer and log it off somewhere
        context.Done(true);
    }
}

此外,我想使用scorable来处理某些全局事件,例如寻求帮助或切换到我的机器人功能的不同部分。但是,在某些情况下,例如寻求帮助,用户可以在Scorable中交换几条消息(回答提示,将用户分类为正确的信息等),这可能会将最后一个问题推回到对话中。

出于这些考虑,在用户收到“你叫什么名字?”的情况下。问题,但然后命中一个Scorable,我想在上下文返回到我的ExampleDialog后重新提出问题。在我的真实场景中,问题可能是许多动态问题中的一个,因此在返回之前它不能在Scorable中进行硬编码。是否有任何方法可以定义上下文返回时要执行的逻辑,类似于上下文最初进入新对话框时StartAsync任务的运行方式?

0 个答案:

没有答案