Хранение элементов в ObjectCache: невозможно получить старые значения
Я использую экземпляр MemoryCache.Default ObjectCache для хранения данных в приложении MVC; Каждый раз, когда я сохраняю какой-то элемент и, невольно читая его, я вижу, что элементы хранятся так, как ожидалось. Но когда создается новый экземпляр класса Cashing (я имею в виду класс, который использовал ObjectCache), я не могу получить доступ к старым значениям. один экземпляр для ObjectCache, но это не помогает мне.
//here is single instance of caching object
public class CacheSingleton
{
private static CacheSingleton instance;
private CacheSingleton() { cache = MemoryCache.Default; }
public static CacheSingleton Instance
{
get
{
if (instance == null)
{
instance = new CacheSingleton();
}
return instance;
}
}
public ObjectCache cache { get; private set; }
}
// and here is piece of caching class
.........
private ObjectCache cache;
public DefaultCacheProvider()
{
cache = CacheSingleton.Instance.cache;
}
public object Get(string key)
{
return cache[key];
}
public void Set(string key, object data, int cacheTime, bool isAbsoluteExpiration)
{
CacheItemPolicy policy = new CacheItemPolicy();
if (isAbsoluteExpiration)
{
policy.AbsoluteExpiration = DateTime.Now + TimeSpan.FromMinutes(cacheTime);
}
else
{
policy.SlidingExpiration = TimeSpan.FromMinutes(cacheTime);
}
cache.Add(new CacheItem(key, data), policy);
}
public bool IsSet(string key)
{
return (cache[key] != null);
}
public void Invalidate(string key)
{
cache.Remove(key);
}
Кто-нибудь может объяснить, почему с каждым новым экземпляром класса кэширования (последний код) я не могу получить доступ к старым значениям. Спасибо.