У меня есть приложение C # WPF, и я пытаюсь реализовать кэширование с использованием нового System.Runtime.Caching. Когда я добавляю что-то в Cache, я проверяю это и подтверждаю, что оно есть, и оно есть. Однако, когда я перезапускаю приложение, оно исчезает из кэша.
Итак, в приведенном ниже примере выводом всегда будет «Найдено». Я ожидаю, что при первом запуске он выдает «Found It», но все последующие разы (в течение следующих 10 дней) он выдает «There are present», но это не так. Я запустил его через отладчик и подтвердил, что при каждом перезапуске приложения кэш ["MYDATA"] будет равен нулю.
Что я делаю не так? Спасибо!
Dictionary<Type, Dictionary<string, object>> _CachedObjects = null;
ObjectCache cache = MemoryCache.Default;
_CachedObjects = cache["MYDATA"] as Dictionary<Type, Dictionary<string, object>>;
if (_CachedObjects == null)
{
_CachedObjects = new Dictionary<Type, Dictionary<string, object>>();
//code that fills _CachedObjects
CacheItemPolicy policy = new CacheItemPolicy();
policy.AbsoluteExpiration = DateTimeOffset.Now.AddDays(10.0);
cache.Set("MYDATA", _CachedObjects, policy);
if(cache["MYDATA"] != null)
Console.WriteLine("Found It");
}
else
Console.WriteLine("Was already present");