zoukankan      html  css  js  c++  java
  • Syn Bot /OSCOVA 上下文(8)

    下文用来表示用户Session的会话状态。用Context 特性标记的Intent将仅在指定的上下文名称与其匹配时才被调用,对从会话上面消除歧义很有用的。

    上下文由名称和生存周期组成。生存周期表示上下文存活的请求数量。默认是5个请求。

    另外,上下文也有自身的生存时间,默认一个上下文将保持活动10分钟,当生存周期或生存时间任一到期,其将被从用户session中移除。

    用法举例,你的应用程序需要让用户确认shutdown指令:

    [Expression("shutdown")]
    public void Shutdown(Context context, Result result)
    {
        //Add a new "shutdown_confirmation" context.
        context.Add("shutdown_confirmation", 2);
    
        result.SendResponse("Are you sure?");
        //Do something.
    }
    [Expression("{yes}")]
    [Entity(Sys.Positive)]
    [Context("shutdown_confirmation")]
    public void ShutdownConfirmed(Context context, Result result)
    {
        //Do something.
    }
    
    [Expression("{no}")]
    [Entity(Sys.Negative)]
    [Context("shutdown_confirmation")]
    public void ShutdownCanceled(Context context, Result result)
    {
        //Do something.
    }
    这里指定了2个用户请求作为傻姑娘下文的生存周期,周期到时会自动被删除,你也可以手动删除。
    context.Remove("shutdown_confirmation");

    添加的上下文在存续期间可以在过程中携带多个唯一参数以携带额外信息。

    [Expression("turn on the air conditioner")]
    public void TurnOnAC(Context context, Result result)
    {
        context.Add("air-con");
        var acContext = context["air-con"];
        acContext.Parameters.Add("temp", "medium");
    }
    或者
    [Expression("{turn on} the air conditioner")]
    [Entity("on")]
    public void TurnOnAC(Context context, Result result)
    {
        var newConItem = context.Create("air-con");
        newConItem.Parameters.Add("temp", "medium");
    }

    有条件的存在,添加上下文时可以使用条件。

    [Expression("Play @movie-name")]
    public void PlayMovie(Context context, Result result)
    {
        //Keep context active until movie is playing.
        context.Add("movie-playback", () =>
        {
            return MoviePlayer.IsPlaying;
        });
        //Do something.
    }


  • 相关阅读:
    centos7.6 安装与配置 MongoDB yum方式
    MongoDB 介绍
    centos 关闭selinux
    前端 HTML标签属性
    前端 HTML 标签嵌套规则
    前端 HTML 标签分类
    前端 HTML body标签相关内容 常用标签 表单标签 form里面的 input标签介绍
    前端 HTML body标签相关内容 常用标签 表单标签 form 表单控件分类
    前端 HTML form表单标签 select标签 option 下拉框
    POJ 1426
  • 原文地址:https://www.cnblogs.com/mrtiny/p/9082090.html
Copyright © 2011-2022 走看看