Represents a collection of sites in a Web application, including a
top-level Web site and all its subsites. Each SPSite object, or site
collection, is represented within an SPSiteCollection object that
consists of the collection of all site collections in the Web
application.
Inheritance Hierarchy
System.Object
Microsoft.SharePoint.SPSite
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in
Microsoft.SharePoint.dll)
Available in Sandboxed Solutions: Yes
Available in SharePoint Online
[SubsetCallableTypeAttribute] [ClientCallableTypeAttribute(Name =
"Site", ServerTypeId = "{E1BB82E8-0D1E-4e52-B90C-684802AB4EF6}")]
public class SPSite : IDisposable
Remarks
To instantiate an SPSite object for a specific site collection on an
ASP.NET page, or for a specific site collection within a console
application, use the SPSite constructor as follows: C# VB
SPSite oSiteCollection = new SPSite("Absolute_URL");
Within an ASP.NET application, you can use the Site property of the
SPContext class to return an SPSite object that represents the current
site collection, as follows: C#
SPSite oSiteCollection = SPContext.Current.Site;
Use the Sites property of the SPWebApplication class to return an
SPSiteCollection object that represents the collection of site
collections in a SharePoint Web application. Use an indexer to return
a single site collection from the collection. For example, if the
collection of site collections is assigned to a variable named
oSiteCollections, use oSiteCollections[index] in C#, or
oSiteCollections(index) in Visual Basic, where index is either the
display name or the index number of the site collection in the
collection.
Certain objects implement the IDisposable interface, and you must
avoid retaining these objects in memory after they are no longer
needed. If you create your own SPSite object, you can use the Dispose
method to close the object. You can also instead implement a using
statement so that the .NET Framework common language runtime (CLR)
automatically releases the memory that is used to store the site
collection as follows: C# VB
using (SPSite oSiteCollection = new SPSite("Absolute_URL") {
... }
However, if you have a reference to a shared resource, such as when
the object is provided by the GetContextSite method in a Web Part, do
not use either method to close the object. Using either method on a
shared resource causes an Access Violation error to occur. In
scenarios where you have a reference to a shared resource, instead let
Microsoft SharePoint Foundation or your portal application manage the
object.
For more information about good coding practices, see Disposing
Objects.
Important
If you install Infrastructure Update for Windows SharePoint Services
3.0 (KB951695), custom solutions may fail if they call the SharePoint object model while impersonation is suspended. If you use Windows
authentication and your code calls the SharePoint object model from an
Internet Information Services (IIS) worker process, the request must
impersonate the calling user’s identity. SharePoint Foundation
configures ASP.NET to impersonate the calling user automatically, but
your code may work unexpectedly, or fail, if you suspend
impersonation--for example, by calling the RevertToSelf function of
the Windows API, or by calling the
System.Security.Principal.WindowsIdentity.Impersonate method and
passing IntPtr.Zero as the value of the user token parameter. Even if
your code does not explicitly revert to self, it might be called by
ASP.NET after it reverts to self, such as happens when implementing a
virtual path provider; if your code does not impersonate the calling
user, it might not function properly.
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.