C# 使用IDialog处理各种消息

C# 使用IDialog处理各种消息,c#,botframework,C#,Botframework,假设您有一个ContactUsDialog,PizzaOrderDialog以及一个MyOrderDialog。用户发送一条消息,如:“我的比萨饼订单已经完成了多长时间”-您如何知道要启动哪个对话框 public async Task<HttpResponseMessage> Post([FromBody] Activity activity) { if (activity != null) { switch (

假设您有一个
ContactUsDialog
PizzaOrderDialog
以及一个
MyOrderDialog
。用户发送一条消息,如:“我的比萨饼订单已经完成了多长时间”-您如何知道要启动哪个对话框

    public async Task<HttpResponseMessage> Post([FromBody] Activity activity)
    {
        if (activity != null)
        {
            switch (activity.GetActivityType())
            {
                case ActivityTypes.Message:
                    await Conversation.SendAsync(activity, () => new ContactUsDialg());
                    await Conversation.SendAsync(activity, () => new PizzaOrderDialog());
                    await Conversation.SendAsync(activity, () => new MyOrderDialog());
                    break;
        }
        return new HttpResponseMessage(System.Net.HttpStatusCode.Accepted);
    } 
公共异步任务发布([FromBody]活动)
{
if(活动!=null)
{
开关(activity.GetActivityType())
{
案例活动类型。消息:
wait Conversation.sendaync(活动,()=>newcontactusdialg());
等待对话。SendAsync(活动,()=>new PizzaOrderDialog());
wait Conversation.sendaync(活动,()=>new MyOrderDialog());
打破
}
返回新的HttpResponseMessage(System.Net.HttpStatusCode.Accepted);
} 

您不能以您尝试的方式执行此操作。您需要决定哪一个将成为根对话框,并将消息重新路由到其他对话框

以下几个示例可能对您有所帮助:

  • :了解如何调用/转发消息到子对话框
  • :了解如何使用LUIS
是的,您可以使用LUIS作为根对话框,然后调用子对话框。一些帖子可能也有帮助:


你不能这样做。你需要决定哪一个是根对话框,根对话框中的根据需要重新路由到其他人。我想是的……我可以用LUIS来完成吗?有例子吗?谢谢!