Avatar of JimR123b
JimR123b
Flag for United Kingdom of Great Britain and Northern Ireland asked on

How can I have a cache of objects per request only?

I am developing an ASP.Net application using C#, under Visual Studio 2008.

I want to be able to keep a cache of certain objects, but I only want the cache to last per page request, so that each new page request goes and rebuilds the cache again.

I have two Projects in my Visual Studio Solution, one is the Asp.Net application, and the other is my "Data Layer", as such, which takes the form of a class library. The class library gets built as a DLL and referenced by the Asp.Net application.

I want to contain the object cache within the Data Layer class library (as the Data Layer needs to manipulate it, and the Asp.Net application does not), but the problem is that this class library seems to stay in memory, presumably because it's a DLL. This means that the object cache stays in memory, on-between page requests, which I don't want.

I figure there are the possible solutions, but I can't figure out how to write them in code...

1. Stop the DLL from staying in memory in-between page requests. This isn't ideal, as I'd probably like some things in the class library (such as a connection to a SQL Server) to stay in memory all the time.

2. Fire off an event before or after all page requests to clear the object cache. Maybe this could be done as an event hook in a Master Page, but it would be nice if there was a more global method of hooking into the beginning or end of all page requests.

3. ?

Can anybody please help me? I am willing to explore most suggestions, but this is quite a big project already so I may be restricted a little in what I can try.
.NET ProgrammingASP.NET

Avatar of undefined
Last Comment
JimR123b

8/22/2022 - Mon
McExp

A solution for option 2 would be to write a Http Module, this could then be configured to fire on all page requests.

http://www.15seconds.com/issue/020417.htm
ASKER CERTIFIED SOLUTION
JimR123b

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
I started with Experts Exchange in 2004 and it's been a mainstay of my professional computing life since. It helped me launch a career as a programmer / Oracle data analyst
William Peck