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
