首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SPCache与HttpRuntime.Cache

SPCache与HttpRuntime.Cache
EN

Stack Overflow用户
提问于 2011-03-27 12:52:47
回答 3查看 2.3K关注 0票数 3

我有一个SharePoint 2010场,并希望对我自己的自定义对象使用对象缓存。

因为它的核心是一个ASP.net应用程序,所以我可以使用HttpRuntime.Cache。另一方面,SharePoint 2010提供了自己的SPCache

为什么我要选择SPCache而不是HttpRuntime.Cache one?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-07 04:51:04

仅供参考,我最后还是和SPCache一起去的。它确实是一个非常不同寻常的SharePoint类:文档很好,使用起来简单明了,管理起来也很轻松。

它确实提供了HttpRuntime.Cache不能做的一件事:允许我创建自己的子缓存,并在不擦除整个HttpCache的情况下使其无效。

我可以在HttpCache中使用字典来实现相同的功能,但是锁定它有一些潜在的问题。我对SPCache进行了反思,发现了一个可靠的、线程安全的实现,这就是我所做的。

需要注意的是: SPCache似乎只适用于SharePoint服务器,不适用于基金会。

票数 4
EN

Stack Overflow用户

发布于 2011-03-27 17:14:49

这个问题很有趣。

  • 谷歌没有返回实现SPCache
  • 的结果通过未混淆的代码进行搜索;在使用SPCache的用户配置文件系统中只显示了两个内部类(DataCache和DBCache)。

听起来您不应该使用SPCache (但msdn页面通常会显示“不打算由用户代码使用”)。

票数 1
EN

Stack Overflow用户

发布于 2011-03-27 20:04:00

我们谈论的是哪种自定义对象?

通常,您应该使用HttpRuntime.Cache进行自定义开发(如果您针对旧的SharePoint web部件进行开发,则有一种方法可以在web部件中进行缓存)。即使您在根目录中提到SharePoint是一个ASP.NET应用程序,您也应该更喜欢HttpRuntime.Cache而不是HttpContext.Current.Cache。这将使它更便于单元测试或控制台应用程序,因为您不依赖于上下文或System.Web名称空间。

这可能是显而易见的,但请记住确保线程安全(例如锁定),并记住并不是所有的SharePoint对象都可以序列化。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5447317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档