ASP.NET MVC 中 HttpRuntime.Cache 的使用是否发生了变化?
因此,在准备对控制器进行单元测试时,我正在查看我的标准缓存实用程序,并想,嘿,直接访问 HttpRuntime.Cache 在 MVC 中是否被认为是有害的?
我将缓存包装在一个代理类中,该类实现了类似缓存的接口(虽然简单得多),以便我可以在测试期间模拟它。 但我想知道新框架中是否已经为我完成了这一点。 然而我找不到任何东西。
以下是我如何做到这一点的想法:
public ActionResult DoStuffLol(guid id)
{
var model = CacheUtil.GetOrCreateAndStore(
"DoStuffLolModel",
() =>
{
/* construct model here; time consuming stuff */
return model;
});
return View("DoStuffLol", model);
}
那么,访问缓存的旧模式是否发生了变化? 在 MVC 中是否有更好的缓存操作结果的模式?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
将 OutputCache 属性添加到控制器操作中,以便告诉框架为您缓存输出。 您可以在 ScottGu 关于 ASP.NET Preview 4 的博客文章。
不要将其与 Authorize 属性结合使用。
Add the OutputCache attribute to your controller action in order to tell the framework to cache the output for you. You can read more about this attribute in ScottGu's blog post on ASP.NET Preview 4.
Don't combine this with the Authorize attribute, however.
不,但缓存在 3.5 中发生了变化。 3.5 包含包装类,使对 ASP.NET 中使用的许多静态类进行存根/模拟变得容易。
http://www. codethinked.com/post/2008/12/04/Using-SystemWebAbstractions-in-Your-WebForms-Apps.aspx
No, but the cache has changed in 3.5. 3.5 includes wrapper classes that make stubbing/mocking many of the static classes used in asp.net easy.
http://www.codethinked.com/post/2008/12/04/Using-SystemWebAbstractions-in-Your-WebForms-Apps.aspx