Riz
Riz

Reputation: 6982

Using System.Web.Caching.Cache

I am trying to use the Cache, but get the error below. How can I properly use the Cache?

protected void Page_Load(object sender, EventArgs e) {
x = System.DateTime.Now.ToString();
 if (Cache["ModifiedOn"] == null) { // first time so no key/value in Cache
    Cache.Insert("ModifiedOn", x); // inserts the key/value pair "Modified On", x            
 }
 else { // Key/value pair already exists in the cache
     x = Cache["ModifiedOn"].ToString();
 } }

'System.Web.Caching.Cache' is a 'type' but is used like a 'variable'

Upvotes: 17

Views: 39296

Answers (2)

pashute
pashute

Reputation: 4053

Have somewhere that the class stores the HttpContext when it is initialized by new, or with an Init() method

Then use the HttpContext.Current.Cache

Or: Make methods to read and write to the cache with a parameter currentcache, and document that so with sample code where it is called with HttpContext.Current.Cache

Upvotes: 0

coder net
coder net

Reputation: 3475

System.Web.Caching.Cache: this is the implementation of .NET caching.

System.Web.HttpContext.Current.Cache: this is the instance of that implementation, that lives in the application domain.

I think you want to use the second one if you are not in the code behind of an aspx page. Use Cache if you are in the code behind of an aspx page.

You can also use Page.Cache.Insert directly that has a reference to the System.Caching.Cache through the page object. All this point to the same application cache which are global for all users.

Upvotes: 45

Related Questions