Objet SPSITE et SPWEB Dispose à l'intérieur de la boucle
Question
J'ai un code qui passe à travers tous les sites et les toiles d'une application Web.Mon code utilise ..Chaque boucle pour naviguer dans chaque site et objet Web.
Je me demandais si nous sommes tenus de disposer des objets SPWeb et SPSITE lorsqu'ils sont utilisés à l'intérieur d'une boucle.
codes: -
foreach (SPSITE THISITE dans SITEAUDITWEBAPPLICATION.SITES) { // mon opération ici }
Semblable au code ci-dessus, j'ai également une partie du code qui boucle via tout le Web et les listes.
Avons-nous de meilleures pratiques pour éliminer des objets à l'intérieur de la boucle ou dois-je vraiment prendre soin de l'élimination des objets?
Merci à Adv .. Sudhir
La solution
Je vous recommanderais vivement de passer à travers ceci Article de référence si vous ne l'avez pas déjà fait.
Autres conseils
Oui, vous devez vous écarter tous.
foreach (SPSite thisSite in siteAuditWebApplication.Sites)
{
//My operation here
thisSite.Dispose();
}
Si vous craignez de disposer correctement tous les objets, vous pouvez afficher un journal ULS et rechercher le message suivant
Un objet spèquement n'a pas été disposé avant la fin de ce fil.Pour éviter de gaspiller des ressources système, disposez de cet objet ou de son parent (tel qu'un SPSITE ou SPWEB) dès que vous l'avez fait.
Avoir ces messages dans vos journaux ULS indique que certains de votre code ne peuvent pas appeler à tous les objets SPWeb / spsite jetables.