Caching With Weak References in .NET
To cache objects returned from a service, one can use one of several available mechanisms, the simplest of which is to reference the objects indefinitely. However, this approach ultimately suffers if an application caches too much data. Alternatively, one could use the Microsoft Caching Application Block (CAB), an extensible module that facilitates common caching scenarios. But when one is creating a sophisticated architecture requiring that no more than one copy of a given object (such as a customer record) exist in memory at a given time, the CAB won't suffice.