Michael is right, at times you don't need to dispose of SharePoint objects is 
if you are writing code that will run in-context of a SharePoint Site, so a web 
part or control added to a sharepoint site which may programmatically access 
SPWeb as a shared resource you don't need to dispose the object.

On the other hand if you are creating a SharePoint Context programmatically, 
say in a console app or a winforms app then your MUST remember to dispose of 
objects correctly as SharePoint won't do it for you.

http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.spweb.dispose.aspx
If you create an SPWeb object, you can use the Dispose method to close the 
object. However, if you have a reference to a shared resource, such as when the 
object is provided by the 
SPControl.GetContextWeb<http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spcontrol.getcontextweb.aspx?ref=ZindeShop.Com>
 method, do not use the Dispose method to close the object, but instead allow 
Windows SharePoint Services or your portal application to manage the object.

A page with links to other related resources discussing memory issues caused by 
custom SharePoint development - 
http://www.21apps.com/2008/02/sharepoint-ate-all-my-memory-dealing.html

Sezai Kömür
Senior Developer  - BEng, BSc - Microsoft Certified Technology Specialist  -  
http://www.moss2007.com.au/

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michael Nemtsev
Sent: Wednesday, 26 March 2008 10:10 AM
To: [email protected]
Subject: [OzMOSS] RE: Object Disposal in Feature Receivers

AFAIK it's not the case where u should dispose your resources. There are a few 
cases to dispose SPWeb, but feature not the case

Michael Nemtsev
Readify |  Senior Developer
Microsoft MVP [.NET/C#]
Tel: +61 424 184 978 | Email: [EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Lee Marriage
Sent: Wednesday, March 26, 2008 11:26 AM
To: [email protected]
Subject: [OzMOSS] Object Disposal in Feature Receivers

A question on object disposal which has sparked a little debate. When calling 
the FeatureActivated method, the object to the parent site can be found at 
'properties.Feature.Parent'.  Best practices for using objects which implement 
the IDisposable interface say to call the Dispose() method when finished using 
the object.

For example:
using (SPWeb web = (SPWeb)properties.Feature.Parent)
{
//.... Do something here
}
or this way:
SPWeb web = (SPWeb)properties.Feature.Parent
web.Dispose();

However having read this article 
http://msdn2.microsoft.com/en-us/library/aa973248.aspx and seen many examples 
on the www where the 'properties.Feature.Parent' isn't explicitly disposed a 
debate has been sparked as to whether or not getting the web (or site) using 
'properties.Feature.Parent' requires disposal in the aforementioned manner?

So what says you; to dispose or not to dispose?

Cheers,
Lee Marriage
------------------------------------------------------------------- OzMOSS.com 
- to unsubscribe from this list, send a message back to the list with 
'unsubscribe' as the subject.
Powered by mailenable.com
------------------------------------------------------------------- OzMOSS.com 
- to unsubscribe from this list, send a message back to the list with 
'unsubscribe' as the subject.
Powered by mailenable.com



------------------------------------------------------------------- OzMOSS.com 
- to unsubscribe from this list, send a message back to the list with 
'unsubscribe' as the subject.

Powered by mailenable.com

Reply via email to