C# Bot上下文。请稍候,不显示下一条消息
我正在开发具有IDialog的Bot应用程序。当增量值达到4时,它不会调用MessageEndAsync并等待用户输入。没有用户输入,不会在模拟器中显示下一条消息 我正在寻找一些解决方案,一旦验证通过,然后转到下一条消息,否则继续检查验证 你能帮我解决这个问题吗C# Bot上下文。请稍候,不显示下一条消息,c#,azure,bots,botframework,C#,Azure,Bots,Botframework,我正在开发具有IDialog的Bot应用程序。当增量值达到4时,它不会调用MessageEndAsync并等待用户输入。没有用户输入,不会在模拟器中显示下一条消息 我正在寻找一些解决方案,一旦验证通过,然后转到下一条消息,否则继续检查验证 你能帮我解决这个问题吗 [Serializable] public class PlayGame: IDialog<object> { private int increment = 0; publ
[Serializable]
public class PlayGame: IDialog<object>
{
private int increment = 0;
public async Task StartAsync(IDialogContext context)
{
context.Wait(MessageReceivedAsync);
}
public async Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> argument)
{
var message = await argument;
increment++;
if (increment == 4)
{
await context.PostAsync(increment.ToString());
context.Wait(MessageEndAsync);
}
else
{
await context.PostAsync(increment.ToString());
context.Wait(MessageReceivedAsync);
}
}
public virtual async Task MessageEndAsync(IDialogContext context, IAwaitable<IMessageActivity> result)
{
await context.PostAsync("Thanks for your information");
context.Done<object>(null);
}
}
[可序列化]
公共类游戏:IDialog
{
私有整数增量=0;
公共异步任务StartAsync(IDialogContext上下文)
{
Wait(MessageReceivedAsync);
}
公共异步任务消息ReceivedAsync(IDialogContext上下文,IAwaitable参数)
{
var message=等待参数;
增量++;
如果(增量==4)
{
wait context.PostAsync(increment.ToString());
Wait(MessageEndAsync);
}
其他的
{
wait context.PostAsync(increment.ToString());
Wait(MessageReceivedAsync);
}
}
公共虚拟异步任务MessageEndAsync(IDialogContext上下文,IAwaitable结果)
{
等待上下文。PostAsync(“感谢您的信息”);
context.Done(null);
}
}
MessageEndAsync
在用户发送输入之前不会被调用。不要执行context.Wait
,只需将代码放在if子句中即可。因此,如果增量为4,您将发布消息并结束对话框
context.Wait
用于将bot置于等待状态,等待即将到来的用户输入 MessageEndAsync
在用户发送输入之前不会被调用。不要执行context.Wait
,只需将代码放在if子句中即可。因此,如果增量为4,您将发布消息并结束对话框
context.Wait
用于将bot置于等待状态,等待即将到来的用户输入