S
Steve Franks
I see several reference to using the ASP.NET 2.0 Cache object in C# where
the documentation just shows snippets like this:
if (Cache["sometoken"] == null)
... do something
However when I use this code in a C# class that is called from an ASP.NET
page, the compiler gives this error:
'Cache' is a tpe and cannot be used as an expression
Furthermore when I type in Cache and press the "." for intellisense, the
only things that pop up are Equals, NoAbsoluteExpiration,
NoSliderExpiration, ReferenceEquals. No methods like Add, Insert and so
forth show up.
This drove me crazy for a while. Then I decided to try my cache code
directly in my ASP.NET code behind page and it worked just fine.
Eventually after mucking around for a while I found that if I did this in my
C# class file then things worked correctly:
public Cache MyCache;
MyCache = System.Web.HttpContext.Current.Cache;
and now I can use if (MyCache["sometoken'] == null) from my C# class and it
works just fine.
A couple of questions:
1) Is this really necessary or am I referencing or doing something in
correctly?
2) Is there another approach to accessing the Cache from a C# class called
by a ASP.NET code behind, or did I stumble upon the right approach by what I
am using here?
Hopefully I'll get some clarification as to what is/was going on and why
this was necessary, and hopefully someone will find this post one day and it
will save them a lot of time.
Thanks,
Steve
the documentation just shows snippets like this:
if (Cache["sometoken"] == null)
... do something
However when I use this code in a C# class that is called from an ASP.NET
page, the compiler gives this error:
'Cache' is a tpe and cannot be used as an expression
Furthermore when I type in Cache and press the "." for intellisense, the
only things that pop up are Equals, NoAbsoluteExpiration,
NoSliderExpiration, ReferenceEquals. No methods like Add, Insert and so
forth show up.
This drove me crazy for a while. Then I decided to try my cache code
directly in my ASP.NET code behind page and it worked just fine.
Eventually after mucking around for a while I found that if I did this in my
C# class file then things worked correctly:
public Cache MyCache;
MyCache = System.Web.HttpContext.Current.Cache;
and now I can use if (MyCache["sometoken'] == null) from my C# class and it
works just fine.
A couple of questions:
1) Is this really necessary or am I referencing or doing something in
correctly?
2) Is there another approach to accessing the Cache from a C# class called
by a ASP.NET code behind, or did I stumble upon the right approach by what I
am using here?
Hopefully I'll get some clarification as to what is/was going on and why
this was necessary, and hopefully someone will find this post one day and it
will save them a lot of time.
Thanks,
Steve