.NET provides a few Cache classes
-
System.Web.Caching.Cache – default caching mechanizm in ASP.NET. You can get instance of this class via property
Controller.HttpContext.Cache
also you can get it via singletonHttpContext.Current.Cache
. This class is not expected to be created explicitly because under the hood it uses another caching engine that is assigned internally.
To make your code work the simplest way is to do the following: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 – this class can be constructed in user code. It has the different interface and more features like update\remove callbacks, regions, monitors etc. To use it you need to import library
System.Runtime.Caching
. It can be also used in ASP.net application, but you will have to manage its lifetime by yourself.var cache = new System.Runtime.Caching.MemoryCache("MyTestCache"); cache["ObjectList"] = list; // add list = (List<object>)cache["ObjectList"]; // retrieve cache.Remove("ObjectList"); // remove