, "Cross Method Dispose Pattern" " ". , SPSite SPWeb , , . , , SharePoint.
, , IDisposable - . SPSite, SPWeb. :
public class MyClass : IDisposable
{
private string _url;
private SPSite _site;
private SPWeb _web;
private SPSite RootSite
{
get
{
if ( _site == null )
{
_site = new SPSite( _url );
}
return _site;
}
}
private SPWeb RootWeb
{
get
{
if ( _web == null )
{
_web = RootSite.OpenWeb();
}
return _web;
}
}
void IDisposable.Dispose()
{
if (null != _site)
{
_site.Dispose();
}
}
}
, _web _site.Dispose().