我试图使用Microsoft企业库的缓存应用程序块。我已经使用MS企业库V5.0在asp.net中使用企业库缓存应用程序块mvc2
以下是我在家庭控制器的索引方法中所做的示例代码。
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()));
}
我在模型中使用的人类只有一个具有2个公共属性的构造函数。没有使用任何特殊功能。
现在,这是正确的程序使用企业库缓存块的缓存。如果没有,我还能如何以有效的方式编码这段代码。
此外,我得到的响应只有在20秒后延迟item is not in cache
。在代码的实现中是否存在任何错误,或者是否存在详细的缓存背后的理论。
请提出这种用法的最佳做法。
感谢您的建议。请注意,我的查询是如何维护同一会话中多个页面刷新之间的缓存。为此,我使用了一个会话变量。这是正确的方法。请分析我的代码并给我回复。 – Saravanan 2011-04-06 07:13:25
对不起,我想我从来没有读完这个问题。这是凌晨2点这里,所以我没有真正的重点。 – Ryan 2011-04-06 07:23:07