c# - 如何结束对话?

标签 c# .net botframework

我使用 Bot Framework 创建了一个机器人,我正在使用 conversationID 来维护我的后端对话引擎的状态。我在结束对话的文档中找不到。在某些时候,用户必须能够向对话发出“结束或退出”信号,以便他们下次开始对话时,它会获得一个新的 conversationID。我认为这应该是一项简单的任务。我正在使用默认的 echo 模板,只是用我的类的方法替换了字母数行,该方法返回要发送回用户的文本。

最佳答案

现在有一个 ActivityTypes.EndOfConversation(这已经在 sdk 中)。

这是一种使用方法: v3

public static async Task EndConversation(this IBotToUser botToUser, string code = EndOfConversationCodes.CompletedSuccessfully, CancellationToken cancellationToken = default(CancellationToken))
{
    var message = botToUser.MakeMessage();
    message.Type = ActivityTypes.EndOfConversation;
    message.AsEndOfConversationActivity().Code = code;

    await botToUser.PostAsync(message, cancellationToken);
}

这也应该在未来的版本中:GitHub Pull Request


第四版

public static async Task EndConversation(this ITurnContext turnContext, string code = EndOfConversationCodes.CompletedSuccessfully, CancellationToken cancellationToken = default(CancellationToken))
{
    var endOfConversation = Activity.CreateEndOfConversationActivity();
    endOfConversation.Code = code;
    await turnContext.SendActivityAsync(endOfConversation, cancellationToken);
}

关于c# - 如何结束对话?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43657463/

相关文章:

c# - 如何在viewmodel(MVVM模型)wpf应用程序中使用命令行参数

c# - 在 Caliburn Micro 上验证

c# - .NET 中系统程序集的 CultureName

c# - 如何将按钮添加到 HeroCard 并在单击时选择值

c# - 调用 FirefoxDriver 和 Firefox 时出现错误 : Found argument '-m' which wasn't expected, 或在此上下文中无效

c# - IDynamicMetaObjectProvider 使用文字名称设置属性

.net - 注册没有管理员权限的 COM

c# - 如何实现 StringBuilder 和/或调用 String.FastAllocateString?

javascript - 如何在bot框架v4中实现触发 Action ?

node.js - MS Bot 框架 v4 - 无法将 QnA 生成器添加到机器人 - 主机名加密值不是有效格式