using (var web = SPContext.Current.Site.RootWeb)
{
//Some code
}
SPDisposeCheck工具告诉我不要处理这个对象 - 但我认为这是应该处理SP对象的一个主要例子!?
SPDisposeCheck的输出:
注意:不应在此对象上调用Dispose。 初始分配:web:= Microsoft.SharePoint.SPContext.get_Current()。{Microsoft.SharePoint.SPContext} get_Site()。{Microsoft.SharePoint.SPSite} get_RootWeb()
答案 0 :(得分:1)
SPContext对象在请求的整个生命周期中都是活动的。如果您处置它的内部Web或站点属性,您将破坏可能在请求的生命周期中请求此属性的其他SharePoint组件。
简单来说,只处理您创建的Web和站点。不是由SharePoint引擎管理的。
PS:您考虑过http://sharepoint.stackexchange.com吗?
答案 1 :(得分:-1)
这是真的正确吗? 如果您查看SPSite.RootWeb的代码,它看起来像这样:
public SPWeb RootWeb
{
get
{
if (this.m_rootWeb == null)
{
this.m_rootWeb = this.OpenWeb(this.ServerRelativeUrl);
this.m_rootWebCreated = true;
}
return this.m_rootWeb;
}
}
它实际上是一个OpenWeb然后你应该处理它。或者我错了吗?