1

我指的是一本 SharePoint 书,我在该书中的一个示例中找到了以下代码片段。

using (SPSite mySiteCollection = new SPSite(mySiteUrl))
{
    using (SPWeb mySPSite = mySiteCollection.RootWeb)
    {
       //your code here.
    }
}

我通过互联网上的 OpenWeb() 方法通读了 RootWeb 属性的用法,发现我们永远不应该在“使用”语句中使用 RootWeb 属性。但在本书中,他们总是使用 RootWeb 来创建 SPWeb 对象。一切都很完美。

谁能告诉我应该如何通过 OpenWeb 方法使用 RootWeb 属性?以及使用它们的优缺点是什么。其实我在这里发现了类似的问题。但它并没有为我的问题提供答案。

4

1 回答 1

2

从属性中处理SPWeb实例RootWeb是完全错误的——它将自动与它的父级一起处理,即SPSite. RootWeb如果您稍后尝试使用该属性,则处置可能会导致问题。有关处置 SP 对象的最佳实践,请参阅MSDN 上的这篇文章。

恕我直言,您应该更喜欢RootWeb属性而不是OpenWeb方法,因为您不必SPWeb显式处理实例。但这可能只是一个偏好问题。

于 2013-10-13T09:32:33.550 回答