zoukankan      html  css  js  c++  java
  • Web Service 缓存

    由于微软的Web service实现是基于Asp.net,所以会出现缓存也就在情理之中了.主要有2中缓存:输出缓存和数据缓存.由于Web Service的缓存管理与asp.net基本是一样的,就不说他的原理,主要说一下在Web service中是如何实现的.

    输出缓存

    实现方法是在WebMethod这个特性里面加一个属性CacheDuration,如下代码所示

    [WebMthod(CacheDuration=30)]

    public string HelloWorld(){...}

    其单位为秒.

    数据缓存

    数据缓存主要是存储在Context.Cache之中.而关于数据缓存有一个比较通用的设计模式.

    那就是建立一个private 方法,拿取所有的数据(相对所有的数据,依据项目情况而定),并把数据缓存起来,在建议各public的WebMethod方法,此方法就从私有的方法过滤出相关的数据返回给客户端.代码片段如下

    private DataSet GetAllUsers()

    {

    DataSet ds =new DataSet();

    if(Context.Cache["cachename"] !=null)

    {

    return (DataSet)Context.Cache["cachename"];

    }

    else

    {

    //....some code to retrieve data from some store

    //cache

    Context.Cache.Insert("cachename",ds,null,DateTime.Now.AddMinutes(10),TimeSpan.Zero);

    return ds;

    }

    }

    //retrieve all users that belongs to a department.

    [WebMethod]

    public User[] GetUser(string DeptID)

    {

    DataSet alluser = GetAllUsers();

    User[] users =alluser.Tables[0].Rows[5] //注:此处代码仅仅是示例,本身语法是有问题,主要是说明在alluser对象中依据传过来的部门参数进行过滤后,然后返回.

    }

  • 相关阅读:
    Go 场景
    sourcetree clone 提示url无效
    简单去重比较/复杂数据去重处理
    vue组件之间的通信
    js-执行机制之同步、异步、宏任务、微任务
    react生命周期
    git push被忽略的文件 处理
    请求头的属性
    运算精度问题https://blog.csdn.net/smile_ping/article/details/80284969
    react中状态提升
  • 原文地址:https://www.cnblogs.com/scgw/p/1988104.html
Copyright © 2011-2022 走看看