为了账号安全,请及时绑定邮箱和手机立即绑定

如何处理用户操作

如何处理用户操作

C#
噜噜哒 2021-11-14 17:29:40
我想使用 c# 处理 Bot 框架中的用户操作。我正在向用户显示一些输入作为选择。这里用户可能不想要任何选择。所以他们可以直接输入一些命令退出。如果用户键入退出,而不是选择选项(退出未列在选项中),我需要处理退出。默认情况下,Bot 不允许输入未列出的内容。希望这可以通过 Node JS(处理用户操作)来完成。我想实现以下相同的功能。有人可以帮助我吗?任何建议,将不胜感激。
查看完整描述

1 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

如果用户键入退出,而不是选择选项(退出未列在选项中),我需要处理退出。默认情况下,Bot 不允许输入未列出的内容。


您可以尝试实现全局消息处理程序,以便在用户使用特定单词回复对话时执行代码Exit。以下代码片段供您参考。


GlobalMessageHandlersBotModule:


public class GlobalMessageHandlersBotModule : Module

{

    protected override void Load(ContainerBuilder builder)

    {

        base.Load(builder);


        builder

            .Register(c => new ExitScorable(c.Resolve<IDialogTask>()))

            .As<IScorable<IActivity, double>>()

            .InstancePerLifetimeScope();

    }

}

退出可评分:


public class ExitScorable : ScorableBase<IActivity, string, double>

{

    private readonly IDialogTask task;


    public ExitScorable(IDialogTask task)

    {

        SetField.NotNull(out this.task, nameof(task), task);

    }


    protected override async Task<string> PrepareAsync(IActivity activity, CancellationToken token)

    {

        var message = activity as IMessageActivity;


        if (message != null && !string.IsNullOrWhiteSpace(message.Text))

        {

            if (message.Text.ToLower().Equals("exit", StringComparison.InvariantCultureIgnoreCase))

            {

                return message.Text;

            }

        }


        return null;

    }


    protected override bool HasScore(IActivity item, string state)

    {

        return state != null;

    }


    protected override double GetScore(IActivity item, string state)

    {

        return 1.0;

    }


    protected override async Task PostAsync(IActivity item, string state, CancellationToken token)

    {

        this.task.Reset();

    }

    protected override Task DoneAsync(IActivity item, string state, CancellationToken token)

    {

        return Task.CompletedTask;

    }

}


查看完整回答
反对 回复 2021-11-14
  • 1 回答
  • 0 关注
  • 186 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信