Why can a new C# MemoryCache access another cache's objects? : <p>The behavior of the C# MemoryCache is making some of my unit tests fail. When a new MemoryCache object is created, it can still access objects added to a different memory cache. Does anyone know why this is the case?</p>

<pre><code>    static void Main(string[] args)
    {
        ObjectCache cache1 = MemoryCache.Default;

        object myObject = new object();

        CacheItemPolicy cacheItemPolicy = new CacheItemPolicy();
        cacheItemPolicy.SlidingExpiration = new TimeSpan(4, 0, 0);
        cache1.Add("My Object", myObject, cacheItemPolicy);

        ObjectCache cache2 = MemoryCache.Default;

        object cachedObject = cache2.Get("My Object");
    }
</code></pre>

<p>The cached object returned from cache2 is the one added to cache1.</p>
