Объект SPSITE и SPWEB Утилизировать внутреннюю петлю Foreach
Вопрос
У меня есть код, который петли через все сайты и сети в веб-приложении.Мой код использует для ... упрощенного цикла для навигации по каждому сайту и веб-объекту.
Мне было интересно, если мы обязаны распоряжаться объектами 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.