Syn Bot /OSCOVA Action(动作)(10)

是个啥呢?简单说就是给方法命名,这个命名是全局唯一的。然后其他intent可以通过唯一名称调用指定的方法

 

创建一个Action

class AppActionsDialog : Dialog
{
    [Action(ID = "display.record.action")]
    public void DisplayRecord(Context context, Result result)
    {
        //Do something here.
    }
}

当然也可以用SIML调用,这个我们后续再介绍

<Siml>
  <Dialog Name="action-dialog">
    <Intent Name="action-intent">
      <Expression Value="Display all records"/>
      <Action ID="display.record.action"/>
    </Intent>
  </Dialog>
</Siml>

举例,从其他ConfirmCoupon调用RequestCouponAction

[Action(ID = "request-coupon")]
public void RequestCouponAction(Context context, Result result)
{
    result.SendResponse("Please enter your coupon code.");
    context.Add("wait-coupon");
}

//If user says "Yes" that he has a coupon code then call action.
[Expression("@sys.positive")]
[Context("confirm-coupon")]
public void ConfirmCoupon(Context context, Result result)
{
    result.Bot.Actions["request-coupon"].Invoke(context, result);
}

/。。没了。

posted @ 2018-05-24 11:56  道木先生  阅读(126)  评论(0编辑  收藏  举报