使用RootWeb属性而不是OpenWeb方法

时间:2013-10-13 06:30:07

标签: sharepoint

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

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

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

有人能告诉我如何使用RootWeb属性而不是OpenWeb方法?使用它们的优点和缺点是什么?其实我在这里发现了类似的问题。但它没有为我的问题提供答案。

1 个答案:

答案 0 :(得分:2)

SPWeb属性中处置RootWeb实例是完全错误的 - 它将自动与其父SPSite一起处理。如果您稍后尝试使用该属性,则处置RootWeb可能会导致问题。有关处置SP对象的最佳做法,请参阅MSDN上的this article

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