Ever wanted a quick reference on what to or not to dispose in SharePoint?
This is the my idea about such a guide.
How to dispose?
You can use the Dispose() method, or the Using keyword context
What to dispose?
to ease reading, in general: Dispose red, keep green!.
Dispose when you have: new, openWeb, allWebs,Webs
Do NOT dispose
when you have: SPContext,
RootWeb,
ParentWeb
Also from latest version of SPDisposeCheck tool, this is a reference list of Do Not Dispose Rules checked:
SPListEventProperties.Web
SPWebEventProperties.Web
SPItemEventProperties.Web
SPItemEventProperties.ListItem.Web
SPItemEventProperties.Web.Site
SPItemEventProperties.ListItem.Web.Site
SPFeatureReceiverProperties.Feature.Parent
SPList.ParentWeb&SPListEventProperties.List.Web
SPWeb.ParentWeb
SPContext.Site&SPContext.Current.Site
SPContext.Web&SPContext.Current.Web
SPSite.RootWeb
SPControl.GetContextWeb(..)
SPControl.GetContextSite(..)
Microsoft.SharePoint.Administration.SPSiteAdministration.OpenWeb()
You can always check the latest version of SPDisposeCheck utility at: http://archive.msdn.microsoft.com/SPDisposeCheck