-3
C#MemoryCacheの動作により、私のユニットテストのいくつかが失敗しています。新しいMemoryCacheオブジェクトが作成されると、別のメモリキャッシュに追加されたオブジェクトにもアクセスできます。誰がなぜこれが当てはまるのか知っていますか?なぜ新しいC#MemoryCacheは別のキャッシュのオブジェクトにアクセスできますか?
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");
}
cache2から返されたキャッシュオブジェクトは、cache1に追加されたオブジェクトです。
'cache1'と' cache2'は両方とも 'MemoryCache.Default'です。あなたは新しいものを作りませんでした。 –
示されたコードは、「新しいMemoryCacheオブジェクトが作成された」ことをまったく示さない。間違ったコードを投稿した可能性があります - 投稿を編集して、正しいコードを投稿してください。 (もしあなたが 'cache2 = MemoryCache.Default'が新しいインスタンスを作成すると思われるなら、C#でどのような割り当てが行われているかを読むこともできます) –