Во-первых, краткий ответ: этот метод действительно возвращает удаленный объект.Объект не должен использоваться после удаления, поскольку он больше не находится в надежном состоянии, и любая дальнейшая операция, выполняемая над этим объектом, должна (теоретически) вызвать ObjectDisposedException .
Теперь, послекопаясь немного, объекты SharePoint, кажется, не следуют этому правилу.Мало того, что SPWeb
никогда не выбрасывает ObjectDisposedException
после удаления, но на самом деле проверяет для этого случая в своем свойстве Request
и восстанавливает действительный SPRequest
из своего внутреннегоукажите, был ли он утилизирован.
Кажется, что по крайней мере SPWeb
был предназначен , чтобы быть полностью функциональным даже в утилизированном состоянии.Почему я не знаю.Может быть, это для размещения клиентского кода, такого как тот, над которым вы работаете.Может быть, это какая-то сложная оптимизация, которую я не могу понять.
Тем не менее, я бы посоветовал вам не полагаться на это поведение , потому что оно может измениться в будущем (хотя, учитывая политику Microsoft в отношении обратной совместимости «ошибка за ошибкой», это может не произойти).
И, конечно, вы все равно утечете новый экземпляр SPRequest
, который может быть довольно дорогостоящим.Никогда, никогда не используйте удаленный объект, даже если SharePoint позволяет вам сойти с рук.