gpt4 book ai didi

sharepoint - SPSite 站点 = 新 SPSite(SPContext.Current.Web.Url) 与 SPContext.Current.Web.Site

转载 作者:行者123 更新时间:2023-12-03 20:42:56 25 4
gpt4 key购买 nike

为什么某些 SharePoint 示例使用

using (SPSite site = new SPSite(SPContext.Current.Web.Url))
{
...
}

而不仅仅是简单的?
SPSite site = SPContext.Current.Web.Site;
...

更新

我想我已经将问题缩小到以下几点:

看来我不应该用 SPContent.Current直接,除非我确定我的代码在 SharePoint 中运行。但什么时候不是真的呢?

最佳答案

查看 disposing objects in SharePoint 2010 上的最佳实践文档来自微软,但是有 opposing views .

SharePoint 项目有几个关键要点:

  • 总是处置 您的 SPWeb/SPSite 对象 --> 内存泄漏
  • 当您确定代码在 SharePoint 上下文中运行时,请使用 SPContext.Current...
  • 单元测试意味着没有 Sharepoint 上下文
  • 外部实用程序意味着没有 Sharepoint 上下文
  • Powershell 表示没有 SharePoint 上下文(例如,使用功能接收器激活功能可能会失败)
  • 不要处理 SPContext.Current... 而是创建自己的对象(再次 using )

  • 您可能有 problems with consistency与您的多个 SP.. 对象。

    到底 SPSite site = SPContext.Current.Web.Site;在某些情况下很好,但您无法控制此 site对象 - 这可能是问题所在。如果你去 new SPSite(...)您将永远拥有 您的 SPSite而不是 SharePoint 为您创建和管理的内容。

    我个人几乎总是选择 using结构,以便之后正确处理所有对象。或者我使用 SPContext.Current.Web无需处置。

    关于sharepoint - SPSite 站点 = 新 SPSite(SPContext.Current.Web.Url) 与 SPContext.Current.Web.Site,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8052190/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com