Botframework 等待WaterWallStep对话框中的偶数类型活动(bot framework 4.0)

Botframework 等待WaterWallStep对话框中的偶数类型活动(bot framework 4.0),botframework,direct-line-botframework,Botframework,Direct Line Botframework,可以在瀑布步骤对话框中等待并接收事件类型的活动。我使用directline 3.0,在一个对话框流中,我从bot向客户端发送一个事件。之后,我想将一个事件从客户端发送到bot,作为对上一次发送的答复。如果我使用prompt wait dc.prompt(“waitEvent”,activity),其中waitEvent是一个textprompt,我用一条消息来回答,它工作正常,但我想用一个事件来回答一个事件。我想我可以编写一个自定义提示,但我没有找到文档,显然我可以管理对话流,但我更喜欢在可能的

可以在瀑布步骤对话框中等待并接收事件类型的活动。我使用directline 3.0,在一个对话框流中,我从bot向客户端发送一个事件。之后,我想将一个事件从客户端发送到bot,作为对上一次发送的答复。如果我使用prompt wait dc.prompt(“waitEvent”,activity),其中waitEvent是一个textprompt,我用一条消息来回答,它工作正常,但我想用一个事件来回答一个事件。我想我可以编写一个自定义提示,但我没有找到文档,显然我可以管理对话流,但我更喜欢在可能的情况下使用对话框。您可以使用来构建“EventActivityPrompt”类

目前还没有任何关于这种用法的BotFramework示例,但是有一些是由BotFramework团队编写的,可以作为示例使用

要创建自己的EventActivityPrompt,只需实现ActivityPrompt,如下所示:

public class EventActivityPrompt : ActivityPrompt
{
    public EventActivityPrompt(string dialogId, PromptValidator<Activity> validator)
        : base(dialogId, validator)
    {
    }
}

谢谢Corina,我遇到了麻烦,因为我使用了一个未公开Prompt Activity抽象类的预发布sdk。谢谢
async Task<bool> _validator(PromptValidatorContext<Activity> promptContext, CancellationToken cancellationToken)
    {
        var activity = promptContext.Recognized.Value;
        if (activity.Type == ActivityTypes.Event)
        {
            if ((int)activity.Value == 2)
            {
                promptContext.Recognized.Value = MessageFactory.Text(activity.Value.ToString());
                return true;
            }
        }
        else
        {
            await promptContext.Context.SendActivityAsync("Please send an 'event'-type Activity with a value of 2.");
        }
        return false;
    }