Вопрос

Я надеюсь, что кто-нибудь сможет мне помочь.Мне нужно получить корневую сеть текущего сайта из SPContext.Это легко сделать с помощью следующего

родовое слово

Меня устраивает идея, что объект SPSite здесь, на SPContext.Current. Site .RootWeb, не следует удалять, но как насчет объекта SPWeb, который я получаю от SPSite?.Будет ли, когда SPSite будет удален, будет удален rootweb SPWeb?Или мне нужно утилизировать его самостоятельно?

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

Решение

Вызовы SPSite.RootWeb не следует удалять.Удаление SPSite также приведет к удалению RootWeb.

В SPDisposeCheck есть ошибка, которая помечает, если вы ее удалите, а если нет (черт побери!), я подробно описал, как я решил эту проблему в этом сообщении блога , поскольку вы не можете использовать атрибут SPDisposeCheckIgnore в блоках с повышенными привилегиями.

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

Нет, не следует.Вам следует избавляться только от объектов, которые вы контролируете.Поскольку контекст - это нечто, созданное SharePoint, вы не избавляетесь от него, так как от него могут зависеть другие объекты.

Если бы вы создавали собственный экземпляр SPWeb на основе свойств этого объекта, его нужно было бы удалить.Т.е.

родовое слово

Вот статья о передовых методах удаления объектов SharePoint.

http://msdn.microsoft.com/en-us/library/aa973248(v=office.12).aspx

Обычно следует использовать SPSite и SPWeb в предложении using.

родовое слово

Это автоматически освободит объект SPWeb после того, как вы закончите с ним.

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