mai
2011
Les problèmes liés au code non managé qui entrainent des problèmes de fuites mémoires dans les développement SharePoint ont déjà fait l’objet de nombreux articles sur le web et je n’ajouterai rien de neuf mais il est parfois utile de revenir sur des sujets théoriquement connus.
Tout les développeurs SharePoint même débutants connaissent l’obligation de faire un dispose après avoir instancié un objet de type SPSite ou SPWeb.
ou la syntaxe plus commune
Dans de nombreux cas, vous ne devrez pas instancier votre objet mais vous le récupérez dans le contexte.
Dans ce cas, et fort logiquement, il ne faut pas faire de Dispose de l’objet.
Quand est-il si vous récupérez l’objet depuis une collection de type SPWebCollection ? Par exemple la propriété Webs d’un objet SPWeb ou AllWebs d’un objet SPSite.
Malgré le fait qu’il s’agisse d’une référence, la référence porte vers une collection dont les membres ne sont instanciés qu’à la demande. Ce qui est facile à comprendre si on imagine le nombre d’objets de type SPWeb qui serait potentiellement nécessaire d’instancier en même temps. Un dispose s’impose donc.
Ce qui est d’autant plus valable pour un parcours d’une collection
En espérant que ce petit résumé vous aura été utile.
Un lien en anglais mais très utile http://solutionizing.net/2008/12/06/the-new-definitive-spsitespweb-disposal-article/