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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top