Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# bot framwork通过恢复对话框提示调用UserMessagesAsync_C#_Dialog_Botframework_Chat_Chatbot - Fatal编程技术网

C# bot framwork通过恢复对话框提示调用UserMessagesAsync

C# bot framwork通过恢复对话框提示调用UserMessagesAsync,c#,dialog,botframework,chat,chatbot,C#,Dialog,Botframework,Chat,Chatbot,嗨,我是一个编写聊天机器人框架的新手。 我有一个主输入方法UserMessagesAsync,如果用户发送了一条匹配的消息,它将处理用户消息 情况。这是我的代码: 如何在ChoiceReceivedAsync内部调用UserMessagesAsync private async Task UserMessagesAsync(IDialogContext context, IAwaitable<Object> result) { var act

嗨,我是一个编写聊天机器人框架的新手。 我有一个主输入方法
UserMessagesAsync
,如果用户发送了一条匹配的消息,它将处理用户消息 情况。这是我的代码:
如何在ChoiceReceivedAsync内部调用UserMessagesAsync

 private async Task UserMessagesAsync(IDialogContext context, IAwaitable<Object> result)
        {
            var activity = await result as Activity;
            int length = (activity.Text ?? string.Empty).Length;

            if (activity.Text.ToLower().Contains("outlet"))
            {
                new BusinessDialog().OutletPrompt(context, result).Wait();

            }
            else if (activity.Text.ToLower().Contains("materialcost"))
            {
                string url = "url";
                await context.PostAsync(url);
            }
            else
            {
                await context.PostAsync($"You sent {activity.Text} which was {length} characters");
            }
        }
出口
枚举:

public enum Outlet
        {
            DocumentRepository,
            Branches
        }
恢复功能:

 public virtual async Task ChoiceReceivedAsync(IDialogContext context, IAwaitable<Domstic> activity)
        {
            // how to call UserMessagesAsync
        }
公共虚拟异步任务ChoiceReceivedAsync(IDialogContext上下文,IAwaitable活动)
{
//如何调用UserMessagesAsync
}

您应该能够:

公共虚拟异步任务ChoiceReceivedAsync(IDialogContext上下文,IAwaitable活动)
{
wait UserMessagesAsync(上下文,活动为IAwaitable);
}
尽管如此,我希望你还没有在这方面做太多的工作

您应该使用,而不是v3
  • v3现在已经非常非常过时了
  • v4有很多新特性,并且不断更新


您有什么问题?如何在ChoiceReceivedAsync中调用UserMessagesAsync谢谢您的帮助建议,但我正在尝试
等待UserMessagesAsync(上下文,活动为IAwaitable)机器人模拟器发送抱歉,我的机器人代码有问题@mdrichardson@KarimFahmy你能分享你所有的代码吗?没有它,很难跟踪或排除故障。不过,如果你没有在v3机器人上投入太多精力,你肯定应该切换到v4。我将切换到v4,谢谢你的帮助@mdrichardson-MSFT@KarimFahmy那么,你觉得我的回答恰当吗?如果是这样,请“接受”并投票,这样其他人可以快速找到答案,我可以从我的支持跟踪中清除这个问题。如果没有,让我知道我还能提供什么帮助!
 public virtual async Task ChoiceReceivedAsync(IDialogContext context, IAwaitable<Domstic> activity)
        {
            // how to call UserMessagesAsync
        }