C# SharePoint子网站-迭代列表
我有一个SharePoint网站。我正在尝试打开一个子网站并获取该子网站中所有列表的列表。此代码返回顶层“http://myspserver“列表。C# SharePoint子网站-迭代列表,c#,sharepoint-2007,C#,Sharepoint 2007,我有一个SharePoint网站。我正在尝试打开一个子网站并获取该子网站中所有列表的列表。此代码返回顶层“http://myspserver“列表。 如何仅从/mysubsite获取列表 string webUrl = "http://myspserver/mysubsite"; using (SPWeb oWebsite = new SPSite(webUrl).OpenWeb()) //Open SP Web { SPListCollection collList = oWebs
如何仅从/mysubsite获取列表
string webUrl = "http://myspserver/mysubsite";
using (SPWeb oWebsite = new SPSite(webUrl).OpenWeb()) //Open SP Web
{
SPListCollection collList = oWebsite.Lists; //Open Lists
foreach (SPList oList in SPContext.Current.Web.Lists)
//For Each List Execute this
{
....
}
}
您应该迭代
collList
,而不是SPContext.Current.Web.Lists
foreach (SPList oList in collList)
{
}
SPContext.Current.Web.Lists将获取您当前所在的站点。这大概是http://myspserver
当您运行代码时
另外,请注意您的代码泄漏-您没有处理SPSite对象。它应该是这样的:
using(SPSite site = new SPSite(webUrl))
using(SPWeb oWebsite = site.OpenWeb())
{
}
您创建了SPListCollection
对象,但是在foreach
中使用了SPContext.Current.Web.Lists
,按照如下方式更正代码,一切都会好起来:
string webUrl = "http://myspserver/mysubsite";
using (SPWeb oWebsite = new SPSite(webUrl).OpenWeb()) //Open SP Web
{
SPListCollection collList = oWebsite.Lists; //Open Lists
foreach (SPList oList in collList)
//For Each List Execute this
{
....
}
}
也许这可以帮助我理解内存泄漏的概念。您是否可以提供任何信息来帮助我理解内存泄漏。@josephs8-我明天会与您联系,但找到一个好的资源应该很容易。Disposing更关心的是释放非托管资源(在某些情况下,这可能是一种更为有限的资源),而与托管内存无关。