表示 Web 应用程序中的网站集合,包括顶级网站及其所有子网站。每个 SPSite 对象或网站集都在一个 SPSiteCollection 对象中表示,该对象由 Web 应用程序中所有网站集的集合组成。
继承层次
System.Object
Microsoft.SharePoint.SPSite
命名空间:Microsoft.SharePoint
程序集:Microsoft.SharePoint(在 Microsoft.SharePoint.dll 中)
可用于沙盒解决方案:是
在 SharePoint Online 中可用
[SubsetCallableTypeAttribute] [ClientCallableTypeAttribute(Name = "Site", ServerTypeId = "{E1BB82E8-0D1E-4e52-B90C-684802AB4EF6}")] 公共类 SPSite:IDisposable
评论
要为 ASP.NET 页面上的特定网站集或控制台应用程序中的特定网站集实例化 SPSite 对象,请使用 SPSite 构造函数,如下所示: C# VB
SPSite oSiteCollection = new SPSite("Absolute_URL");
在 ASP.NET 应用程序中,您可以使用 SPContext 类的 Site 属性返回一个表示当前网站集的 SPSite 对象,如下所示: C#
SPSite oSiteCollection = SPContext.Current.Site;
使用 SPWebApplication 类的 Sites 属性返回一个 SPSiteCollection 对象,该对象表示 SharePoint Web 应用程序中的网站集集合。使用索引器从集合中返回单个网站集。例如,如果将网站集的集合分配给名为 oSiteCollections 的变量,则在 C# 中使用 oSiteCollections[index],在 Visual Basic 中使用 oSiteCollections(index),其中 index 是网站集的显示名称或索引号集合。
某些对象实现了 IDisposable 接口,您必须避免在不再需要这些对象后将它们保留在内存中。如果您创建自己的 SPSite 对象,则可以使用 Dispose 方法关闭该对象。您也可以改为实现 using 语句,以便 .NET Framework 公共语言运行时 (CLR) 自动释放用于存储网站集的内存,如下所示:C# VB
使用 (SPSite oSiteCollection = new SPSite("Absolute_URL") { ... }
但是,如果您有对共享资源的引用,例如当对象由 Web 部件中的 GetContextSite 方法提供时,请不要使用任何一种方法来关闭该对象。在共享资源上使用任一方法都会导致发生访问冲突错误。在您引用共享资源的情况下,请改为让 Microsoft SharePoint Foundation 或您的门户应用程序管理该对象。
有关良好编码实践的更多信息,请参阅处置对象。
重要的
如果您安装适用于 Windows SharePoint Services 3.0 的基础结构更新 (KB951695),如果自定义解决方案在模拟暂停时调用 SharePoint 对象模型,则可能会失败。如果您使用 Windows 身份验证并且您的代码从 Internet 信息服务 (IIS) 工作进程调用 SharePoint 对象模型,则请求必须模拟调用用户的身份。SharePoint Foundation 将 ASP.NET 配置为自动模拟调用用户,但如果您暂停模拟(例如,通过调用 Windows API 的 RevertToSelf 函数或通过调用 System.Security),您的代码可能会意外运行或失败。 Principal.WindowsIdentity.Impersonate 方法并将 IntPtr.Zero 作为用户令牌参数的值传递。即使您的代码没有明确恢复为自我,它可能会在它恢复为自身后被 ASP.NET 调用,例如在实现虚拟路径提供程序时发生;如果您的代码没有模拟调用用户,它可能无法正常运行。
线程安全
此类型的任何公共静态(在 Visual Basic 中为 Shared)成员都是线程安全的。不保证任何实例成员都是线程安全的。
构造函数:
Name Description
Public method SPSite(Guid) Initializes a new instance of the SPSite class based on the specified ID for a site collection.
Public method SPSite(String) Initializes a new instance of the SPSite class based on the specified URL.
Public method SPSite(Guid, SPUrlZone) Initializes a new instance of the SPSite class based on the specified site collection GUID and URL zone.
Public method SPSite(Guid, SPUserToken) Initializes a new instance of the SPSite class based on the specified site collection GUID and user token.
Public method SPSite(String, SPUserToken) Initializes a new instance of the SPSite class based on the specified absolute URL and user token.
Public method SPSite(Guid, SPUrlZone, SPUserToken) Initializes a new instance of the SPSite class based on the specified site collection GUID, URL zone, and user token.