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.
    }


  • 相关阅读:
    再也不想更新的沙雕错误合集
    「HNSDFZ暑期集训 测试1」「LuoguT36488」 连连看
    「HNSDFZ暑期集训 测试1」「LuoguT36485」 括号(贪心
    「UVA524」 Prime Ring Problem 质数环
    「LuoguP2434」 [SDOI2005]区间(贪心
    「LuoguP4047」 [JSOI2010]部落划分
    「LuoguP1281」 书的复制(贪心
    「LuoguP1238」 走迷宫
    「LuoguP4753」濑 River Jumping(贪心
    BZOJ4400 TJOI2012桥(最短路+线段树)
  • 原文地址:https://www.cnblogs.com/mrtiny/p/9082090.html
Copyright © 2011-2022 走看看