gpt4 book ai didi

c# - 寻找一个非常简单的缓存示例

转载 作者:IT王子 更新时间:2023-10-29 04:53:01 26 4
gpt4 key购买 nike

我正在寻找一个真正简单的示例,说明如何将对象添加到缓存、再次将其取出并删除它。

第二个答案here是我希望看到的那种例子......

List<object> list = new List<Object>();

Cache["ObjectList"] = list; // add
list = ( List<object>) Cache["ObjectList"]; // retrieve
Cache.Remove("ObjectList"); // remove

但是当我尝试这样做时,在第一行我得到:

'Cache' is a type, which is not valid in the given context.

在第三行我得到:

An object method is required for the non-static field blah blah blah

那么,假设我有一个 List<T> ...

var myList = GetListFromDB()

现在我只想添加 myList到缓存,将其取回并删除。

最佳答案

.NET 提供了一些缓存类

  • System.Web.Caching.Cache - ASP.NET 中的默认缓存机制。您可以通过属性 Controller.HttpContext.Cache 获取此类的实例,也可以通过单例 HttpContext.Current.Cache 获取它。不应显式创建此类,因为在后台它使用内部分配的另一个缓存引擎。要使您的代码正常工作,最简单的方法是执行以下操作:

    public class AccountController : System.Web.Mvc.Controller{ 
    public System.Web.Mvc.ActionResult Index(){
    List<object> list = new List<Object>();

    HttpContext.Cache["ObjectList"] = list; // add
    list = (List<object>)HttpContext.Cache["ObjectList"]; // retrieve
    HttpContext.Cache.Remove("ObjectList"); // remove
    return new System.Web.Mvc.EmptyResult();
    }
    }
  • System.Runtime.Caching.MemoryCache - 此类可以在用户代码中构建。它具有不同的界面和更多功能,如更新\删除回调、区域、监视器等。要使用它,您需要导入库 System.Runtime.Caching。它也可以在 ASP.net 应用程序中使用,但您必须自己管理它的生命周期。

    var cache = new System.Runtime.Caching.MemoryCache("MyTestCache");
    cache["ObjectList"] = list; // add
    list = (List<object>)cache["ObjectList"]; // retrieve
    cache.Remove("ObjectList"); // remove

关于c# - 寻找一个非常简单的缓存示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41684213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com