Вопрос

Я делаю целую кучу вещей с одним Spweb и многими шпиплами. Если я просто утилизирую Интернет в finally Раздел, это утилизирует все шпипщики, которые я создал создание? (Кстати, я понимаю концепцию using, так что я должен реализовать using вместо?)

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

Решение

Объекты шпилька не могут быть утилизированы.

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

Я рекомендую установить и запустить этот инструмент, чтобы проверить, правильно ли вы утилизируете свои объекты: Spdisposecheck

Правило сложно, но в двух словах, вы должны избавиться от любого объекта, который вы создаете себя, который реализует Idisposable интерфейс.

В контексте SharePoint это включает в себя:

  • Любой Spsite объект, который вы создаете, используя siteColl.OpenWeb(), вернулся SPSiteCollection.Add, посредством SPSiteCollection[] оператор индекса или уступил в SPSiteCollection foreach петля
  • Любой Spweb объект возвращен из SPSite.AllWebs.Add, SPWebCollection.Add, SPSite.AllWebs[] оператор индекса или уступил в SPSite.AllWebs Foreach Loop.

Есть еще много случаев, изложенных в Лучшие практики: использование одноразовой статьи SharePoint Service Object.

Обратите внимание, что Шпатель нет в этом списке (потому что он не реализует IDisposable, как и Splist.Rootweb (Поскольку вы не создаете объект RootWeb, вы просто получаете ссылку на него).

Обратите внимание, что ваш код вряд ли будет компилироваться, если вы попытаетесь Dispose объект, как SPList Это не реализует IDisposable, потому что у этого объекта не будет Dispose метод С другой стороны, вы не получите ошибку, если попытаетесь утилизировать RootWeb, потому что это SPWeb объект с Dispose Метод - но это вызовет проблемы, если вы попытаетесь ссылаться на эту сеть или что -либо из ее детей позже в вашем коде.

А using Заявление - это немного синтаксического сахара, но я предпочитаю использовать его, потому что он гарантирует, что объект всегда утилизируется правильно, и он не требует явного кода, чтобы убедиться, что это происходит.

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