Объект SPSITE и SPWEB Утилизировать внутреннюю петлю Foreach

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/45415

  •  09-12-2019
  •  | 
  •  

Вопрос

У меня есть код, который петли через все сайты и сети в веб-приложении.Мой код использует для ... упрощенного цикла для навигации по каждому сайту и веб-объекту.

Мне было интересно, если мы обязаны распоряжаться объектами SPWEB и SPSite при использовании внутри цикла.

Коды: -

foreach (SPSITE, который этот тесету в SiteauditWebaplication.Sites) { // моя операция здесь }

Аналогичен указанным вышеупомянутым кодом, у меня также есть какая-то часть кода, который проходит через все веб и списки.

У нас есть лучшая практика для утилизации объектов внутри цикла, или мне действительно нужно позаботиться о утилизации объектов?

Спасибо в ADV .. Sudhir

Это было полезно?

Решение

Я настоятельно рекомендую вам пройти через это Справочная статья Если вы еще этого не сделали.

Другие советы

Да, вам нужно распоряжаться всеми из них.

foreach (SPSite thisSite in siteAuditWebApplication.Sites) 
{ 
    //My operation here 
    thisSite.Dispose();
}
.

Если вы беспокоитесь о распоряжении все объекты правильно, вы можете просмотреть журнал ULS и искать следующее сообщение

Объект Sprequest не был расположенным до конца этой темы.Чтобы избежать трафаретной системы ресурсов, утилизируйте этот объект или его родитель (например, SPSITE или SPWEB), как только вы сделаете его, используя его.

Наличие этих сообщений в ваших журналах ULS указывает, что некоторые из ваших кодов могут не вызововать утилизировать все одноразовые объекты SPWEB / SPSITE.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top