Я пытался использовать блоки приложения кеша корпоративной библиотеки Microsoft. Я использовал MS Enterprise Library V5.0
Вот пример кода, который я сделал, внутри метода индекса домашнего контроллера.
Person p = new Person(10, "person1");
ICacheManager cacheMgr = CacheFactory.GetCacheManager("myCache");
ViewData["Message"] = "Welcome to ASP.NET MVC!";
if (Session["currsession"] != null)
{
if (!cacheMgr.Contains(p.pid.ToString()))
{
Response.Write("item is not in cache");
return View(p);
}
else
{
Response.Write("item is still in cache");
return View(p);
}
}
else
{
Session["currsession"] = 1;
cacheMgr.Add(p.pid.ToString(), p, CacheItemPriority.High, null, new SlidingTime(TimeSpan.FromSeconds(10)));
return View(cacheMgr.GetData(p.pid.ToString()));
}
Класс person, который я использую в модели, имеет только конструктор с 2 открытыми свойствами. Ничего особенного не используется.
Теперь, это правильная процедура для использования кэширования блоков кэширования корпоративной библиотеки. Если нет, то как еще можно эффективно кодировать этот блок кода.
Кроме того, я получаю ответ как item is not in cache
только после 20-секундной задержки. Есть ли какая-либо ошибка в реализации кода или есть теория кеширования в деталях.
Пожалуйста, предложите лучшую практику для этого использования.