views:

1795

answers:

1

So I am working on a project which uses ASP.NET. I am trying to call Cache["key"] but the compiler complains about how System.Web.Caching.Cache is "nat valid at this point".

If I call Cache obj = new Cache(); the obj is always null.

I can access HttpContext.Current.Cache - but this doesnt let me specify an absolute expiration and sliding expiration in the Insert() method.

Can someone help me?

+11  A: 

You should be able to absolute or sliding expiration calling the insert on HttpRuntime.Cache. It has several overloads. Ex:

HttpRuntime.Cache.Insert("EXAMPLE_KEY", 
                        exampleItem, 
                        Nothing,                           
                        DateTime.Now.AddHours(1),
                        System.Web.Caching.Cache.NoSlidingExpiration);

The exact same code should also work with HttpContext.Current.Cache.

Jim Petkus
Can't have an absolute expiration AND a sliding expiration? It seems like it one or the other.
Ash
I am not sure how that would work, the two forms of expiration would surely contradict each other at some point. For this reason it is not allowed. One value should be supploed and the other should be System.Web.Caching.Cache.NoSlidingExpiration and System.Web.Caching.Cache.NoAbsoluteExpiration.
Jim Petkus