服务器和网站体系结构:对象模型概述
Microsoft SharePoint Foundation 提供了一个高度结构化的服务器端对象模型,借助该模型,即可轻松访问表示 SharePoint 网站各个方面的对象。您可以从级别较高的对象开始,逐步深入对象层次结构,以获取包含要在代码中使用的成员的对象。
根据要创建的自定义应用程序类型或解决方案类型,您可以使用不同的入口点进入对象模型,以获取要从其开始操作的合适对象。例如,如果要自定义部署的管理和配置,则可以使用静态 ContentService 属性返回当前的 Web 服务对象及其 Web 应用程序集合。若要修改管理 Web 应用程序中的设置,请使用 AdministrationService 属性。从 Microsoft.SharePoint.Administration.SPPersistedObjectCollection<T> 类派生的集合类继承了 GetValue 方法,您可以使用此方法从集合中返回特定对象。
注释
如果您要创建与网站集、单个网站或列表一同使用的 Web 部件、自定义 Web 服务或 Web 应用程序,可使用 Microsoft.SharePoint.SPContext 类的成员获取当前的网站集、网站或列表。在 /_layouts 虚拟目录中创建 Web 应用程序后,此应用程序的功能可用于 Web 服务器上的所有网站。在 HTTP 上下文之外(例如,在控制台应用程序或 Windows 应用程序中),请使用 SPSite 类的构造函数来获取特定网站集并访问网站集中的各个对象。有关详细信息,请参阅获取对网站、Web 应用程序和其他关键对象的引用。
下图显示与 Microsoft.SharePoint.Administration 命名空间的集合和对象相关的 SharePoint Foundation 服务器体系结构。
-
SPFarm 对象在 SharePoint Foundation 对象模型层次中处于最高等级。Servers 属性获取表示部署中所有服务器的集合。Services 属性获取表示所有服务的集合。
-
每个 SPServer 对象都表示一台物理服务器计算机。ServiceInstances 属性提供对单台计算机上运行的单个服务实例集的访问权限。
-
每个 SPService 对象都表示一个安装在服务器场中的逻辑服务。SPService 类的派生类型包括用于 Windows 服务(如定时服务、搜索、数据库服务等)的对象,以及用于 Web 服务(如支持 Web 应用程序的基本内容发布 Web 服务)的对象。
-
SPWebService 对象提供对特定逻辑服务或应用程序的配置设置的访问权限。WebApplications 属性获取运行服务的 Web 应用程序集合。
-
如果此服务可实现 SharePoint Foundation 的服务应用程序框架,则可将其拆分为多个配置的服务器场范围内的实例 (CFSI)。其中每个实例都可提供此服务的功能,但各自有各自的单独权限和设置。
-
在特定服务器上运行的每个服务实例或 CFSI 由 SPServiceInstance 对象表示。
-
SPDatabaseServiceInstance 对象表示在数据库服务器计算机上运行的数据库服务的单个实例。SPDatabaseServiceInstance 类派生自 SPServiceInstance 类,因此继承了 Service 属性,该属性提供对实例所实现的服务或应用程序的访问权限。Databases 属性获取服务中所用的内容数据库集合。
-
每个 SPWebApplication 对象都表示一个承载在 Internet Information Services (IIS) 网站中的 Web 应用程序。SPWebApplication 对象提供对凭据和其他服务器场范围应用程序设置的访问权限。Sites 属性获取 Web 应用程序中的网站集的集合,ContentDatabases 属性获取 Web 应用程序中所用的内容数据库集合。
-
SPContentDatabase 对象从 SPDatabase 类继承,表示包含 Web 应用程序的用户数据的数据库。Sites 属性获取内容数据库存储其数据的网站集的集合;WebApplication 属性获取父 Web 应用程序。
-
SPSiteCollection 对象表示 Web 应用程序中的网站集的集合。
下图显示与 Microsoft.SharePoint 命名空间的集合和对象相关的 SharePoint Foundation 网站体系结构。
-
每个 SPSite对象都表示一组逻辑上相互关联的 SPWeb 对象(见下文),尽管其名称为单数形式。这类组通常称为“网站集”,但与 SPWebCollection 不同的是,SPSite 并不是标准的 Microsoft .NET 集合类。这类组包含可用于管理网站集的成员。AllWebs 属性提供对 SPWebCollection 表示网站集中所有网站(包括首要网站)集合的对象的访问权限。SPSite 类的 SPSite.OpenWeb方法返回特定的网站。
-
每个网站集包含任意数量的 SPWeb 对象,每个对象都包含可用于管理网站(包括其模板和主题)并访问网站上的文件和文件夹的成员。Webs 属性返回一个表示指定网站上所有子网站的 SPWebCollection 对象;Lists 属性返回一个表示网站中所有列表的 SPListCollection 对象。
-
每个 SPList 对象都包含用于管理列表或访问列表中项目的成员。GetItems 方法可用于执行返回特定项目的查询。Fields 属性返回一个表示列表中所有字段或列的 SPFieldCollection 对象;Items 属性返回一个表示列表中所有项目或行的 SPListItemCollection 对象。
-
每个 SPField 对象都拥有包含字段设置的成员。
-
每个 SPListItem 对象都表示列表中的一行。