我指的是一本SharePoint书,我在该书的一个例子中找到了以下代码片段。
using (SPSite mySiteCollection = new SPSite(mySiteUrl))
{
using (SPWeb mySPSite = mySiteCollection.RootWeb)
{
//your code here.
}
}
我在整个互联网上通过OpenWeb()方法阅读了RootWeb属性的使用,发现我们绝不应该在'using'语句中使用RootWeb属性。但在本书中,他们总是使用RootWeb来创建SPWeb对象。一切都很完美。
有人能告诉我如何使用RootWeb属性而不是OpenWeb方法?使用它们的优点和缺点是什么?其实我在这里发现了类似的问题。但它没有为我的问题提供答案。
答案 0 :(得分:2)
从SPWeb
属性中处置RootWeb
实例是完全错误的 - 它将自动与其父SPSite
一起处理。如果您稍后尝试使用该属性,则处置RootWeb
可能会导致问题。有关处置SP对象的最佳做法,请参阅MSDN上的this article。
恕我直言,您应该更喜欢RootWeb
属性而不是OpenWeb
方法,因为您不必显式处置SPWeb
实例。但这可能只是一个偏好问题。