SPSite class

Representa uma coleção de sites em um aplicativo da Web, incluindo um site de nível superior e todos os seus subsites. Cada objeto de SPSite ou o conjunto de sites, é representado dentro de um objeto de SPSiteCollection que consiste na coleção de todos os conjuntos de sites no aplicativo da Web.

Inheritance hierarchy

System.Object
  Microsoft.SharePoint.SPSite

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaração
Public Class SPSite _
    Implements IDisposable
'Uso
Dim instance As SPSite
public class SPSite : IDisposable

Comentários

Para criar uma instância de um objeto de SPSite para um conjunto de sites específico em uma página ASP.NET ou para um conjunto de sites específico dentro de um aplicativo de console, use o construtor de SPSite da seguinte forma:

Dim oSiteCollection As New SPSite("Absolute_URL")
SPSite oSiteCollection = new SPSite("Absolute_URL");

Dentro de um aplicativo ASP.NET, você pode usar a propriedade Site da classe SPContext para retornar um objeto SPSite que representa o conjunto de sites atual, da seguinte maneira:

Dim oSiteCollection As SPSite = SPContext.Current.Site
SPSite oSiteCollection = SPContext.Current.Site;

Use a propriedade Sites da classe SPWebApplication para retornar um objeto SPSiteCollection que representa a coleção de conjuntos de sites em um aplicativo Web do SharePoint. Use um indexador para retornar um único conjunto de sites da coleção. Por exemplo, se a coleção de conjuntos de sites for atribuída a uma variável chamada oSiteCollections, use oSiteCollections[index] em C# ou deindexde oSiteCollections() no Visual Basic, onde index é o nome de exibição ou o número de índice do conjunto de sites na coleção.

Determinados objetos implementam a interface IDisposable , e você deve evitar reter esses objetos na memória depois que eles não são mais necessários. Se você criar seu próprio objeto de SPSite , você pode usar o método Dispose para fechar o objeto. Em vez disso, também é possível implementar uma instrução de using para que o.NET Framework common language runtime (CLR) automaticamente libera a memória que é usada para armazenar o conjunto de sites da seguinte maneira:

Using oSiteCollection = New SPSite("Absolute_URL")
    ...
End Using
using (SPSite oSiteCollection = new SPSite("Absolute_URL")
{
    ...
}

No entanto, se você tem uma referência a um recurso compartilhado, como quando o objeto é fornecido pelo método GetContextSite em uma Web Part, não use o método para fechar o objeto. Usar o método em um recurso compartilhado provoca um erro de violação de acesso ocorre. Em situações onde você tem uma referência a um recurso compartilhado, em vez disso, permitir que Microsoft SharePoint Foundation ou seu aplicativo de portal gerencie o objeto.

Para obter mais informações sobre boas práticas de codificação, consulte Disposing Objects.

Importante

Se você instalar Infrastructure Update for Windows SharePoint Services 3.0 (KB951695), soluções personalizadas podem falhar se eles chamam o modelo de objeto do SharePoint enquanto representação está suspenso. Se você usar a autenticação do Windows e seu código chama o modelo de objeto do SharePoint a partir de um processo de trabalho do Internet Information Services (IIS), a solicitação deve representar a identidade do usuário da chamada. SharePoint Foundation configura o ASP.NET para representar o usuário chamado automaticamente, mas seu código pode falhar inesperadamente se você suspender representação – por exemplo, ao chamar a função RevertToSelf da API do Windows ou chamando o método System.Security.Principal.WindowsIdentity.Impersonate e passando IntPtr.Zero como o valor do parâmetro de token de usuário. Mesmo que se seu código não explicitamente reverter para si próprio, ele pode ser chamado por ASP.NET após ele reverterá para si mesmo, como acontece quando estiver implementando um provedor de caminho virtual. Se seu código não representar o usuário de chamada, ele pode não funcionar corretamente.

Thread safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Ver também

Referência

SPSite members

Microsoft.SharePoint namespace