结合全局和用户特定信息(缓存和会话)

时间:2011-03-16 07:57:37

标签: c# .net session caching

为了更快地创建Web应用程序,我想实现缓存。有一个具有不同元素列表的类,我希望在缓存中保持可用,因为大多数信息对于每个用户(全局)都是相同的。但是元素是一些用户特定的信息,我必须存储并保持快速访问(会话?)。

我在考虑与缓存和会话的某种组合,但我认为这是不可能的?信息用于许多不同的地方,这就是为什么我希望尽可能保持信息尽可能接近。 有没有人有这个问题的好解决方案?

1 个答案:

答案 0 :(得分:0)

虽然没有内置的方法可以同时组合使用它们,但您可以编写包装类,它从两个部分获取整个信息,例如:

class Information
{
  public string UserName { get { return this.GetFromSession("UserName"); } }
  public string WebSiteName { get { return this.GetFromCache("WebSiteName"); } }

  private string GetFromSession(string key)
  { /* get information from session */ }

  private string GetFromCache(string key)
  { /* get information from cache */}
}

然后你可以使用:

Information info = new Information();
Response.Write(info.UserName);
Response.Write(info.WebSiteName);

这有帮助吗?