2011-02-16 6 views
3

SharePoint 사이트가 있습니다. 하위 사이트를 열고 해당 하위 사이트의 모든 목록을 얻으려고합니다. 이 코드는 최상위 "http : // myspserver"목록을 반환합니다.
/mysubsite에서 목록 만 가져 오는 방법은 무엇입니까?SharePoint 하위 사이트 - 목록 반복

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 
    { 
     .... 
    } 
} 
+0

를 HTTP : //msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.getlist.aspx –

답변

4

SPContext.Current.Web.Lists이 아닌 collList 이상으로 반복해야합니다.

foreach (SPList oList in collList) 
{ 
} 

SPContext.Current.Web.Lists 당신이 현재있는 사이트를 얻을 것이다. 당신은 당신의 코드를 실행하면 아마도,이 http://myspserver입니다.

또한 코드 누수가 발생하므로 SPSite 개체를 처리하지 마십시오.

using(SPSite site = new SPSite(webUrl)) 
using(SPWeb oWebsite = site.OpenWeb()) 
{ 
} 
+0

아직 메모리 누수 개념을 이해하려고 노력하고 있습니다. 이해를 돕기 위해 제공 할 수있는 정보가 있습니까? 누출. – atrljoe

+0

@ josephs8 - 내일 다시 연락 드리지만 좋은 자료를 찾는 것은 쉽습니다. – Kobi

+0

Disposing은 관리되지 않는 리소스 (일부 경우 훨씬 더 유한 리소스 일 수 있음)를 확보하고 관리되는 메모리를 많이 확보하는 것에 더 관심이 있습니다. – Swanny

2

당신은 SPListCollection 객체를 생성하지만, 거기에 당신이 잘되어야이 사물과 같은 코드를 수정하여 foreachSPContext.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 
    { 
     .... 
    } 
} 
관련 문제