본문 바로가기

Developer

Sharepoint Object의 Disposing 방법

Sharepoint 개발 중 가장 중요한 부분인 것 같아.. 꼭 알고 계셔야 할 부분입니다.

역시 가장 잘 설명되어 있는 곳은 MSDN입니다.

http://msdn.microsoft.com/en-us/library/ee557362.aspx

 

SPSite, SPWeb의 코딩에는 반드시 Dispose되어야 합니다.

그 중 Context로 잡은 SPSite, SPWeb의 경우에는 Dispose 할 필요가 없습니다.

 

loop 안에 있는 Site, Web 등의 경우가 좀 중요하다고 할 수 있는데요..

좋은 코딩은 아래와 같습니다.

SPSite oSite = SPContext.Current.Site;
using (SPWeb oWeb = oSite.OpenWeb())
{
	foreach (SPWeb oWeb2 in oWeb.Webs)
	{
		// code...
		oWeb2.Dispose();
	}

	SPWeb oWeb3 = null;
	for (int i = 0; i < oWeb.Webs.Count; i++)
	{
		using (oWeb3 = oWeb.Webs[i])
		{
			// code...
		}
	}
}

using (SPSite site = new SPSite("http://dev.com/"))
{
	using (SPWeb web = site.OpenWeb())
	{
		// code...
	}
}

 

SPSite도 위와 같은 형태로 코딩되면 됩니다~~~

 

감사합니다.