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.
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.