WSS3SDK之:Feature对象模型

来源:互联网 发布:串烧制作软件 编辑:程序博客网 时间:2024/06/06 15:01

Windows SharePoint Services 3.0提供了一套完整的对象模型用于列出给定范围内安装的Feature清单,并控制Feature是否在该服务器场内或网站层次上可用。

Feature类库

  • Microsoft.SharePoint.SPFeature (SPFeatureCollection) 返回一个描述Feature在相应层中状态的对象。在场的Feature集合中的存在性(Microsoft.SharePoint.Administration.SPWebService), Web应用程序的 (Microsoft.SharePoint.Administration.SPWebApplication), 网站集的(Microsoft.SharePoint.SPSite), 或网站的 (Microsoft.SharePoint.SPWeb) 层中指示该Feature是否激活。如果集合中缺少对应的i SPFeature 对象就说明在给定范围内没有激活该Feature。 命名空间: Microsoft.SharePoint

  • Microsoft.SharePoint.SPFeatureProperty (SPFeaturePropertyCollection) 代表了某Feature的属性。命名空间:Microsoft.SharePoint

  • Microsoft.SharePoint.SPFeatureScope 一个可以指定的可能的范围的枚举,包括 Farm, WebApplication, Site, 和 Web. 命名空间: Microsoft.SharePoint

  • Microsoft.SharePoint.Administration.SPFeatureDefinition (SPFeatureDefinitionCollection) 包括了一个Feature的基础定义,包含名称,范围,ID,版本。同时,可以存储每个Featue中全局的一些属性。 命名空间: Microsoft.SharePoint.Administration

  • Microsoft.SharePoint.SPFeatureDependency (SPFeatureDependencyCollection) 代表了与某Feature的依赖关系。 命名空间: Microsoft.SharePoint

  • Microsoft.SharePoint.Administration.SPElementDefinition (SPElementDefinitionCollection) 代表了当该Feature被激活或使用时预置的一些元素。 命名空间: Microsoft.SharePoint.Administration

访问Feature集合

获取某场,WSS Web应用程序(虚拟服务器),网站集,内Feature的集合,可以使用下列属性之一来访问集合:

  • Microsoft.SharePoint.Administration.SPWebApplication.Features 返回一个虚拟服务器范围上激活的Feature清单,也就是Web应用程序范围内的。

  • Microsoft.SharePoint.Administration.SPWebService.Features 返回服务器场范围内的管理类型的Feature。

  • Microsoft.SharePoint.Administration.SPFarm.FeatureDefinitions 返回服务器场内安装的所有Feature的清单。

  • Microsoft.SharePoint.SPSite.Features 返回网站集内激活状态的Feature清单。

  • Microsoft.SharePoint.SPWeb.Features 返回网站内激活状态的Feature清单。

  • Microsoft.SharePoint.Administration.SPFeatureDefinition.ActivationDependencies 返回某Feature激活依赖的Feature的清单。

示例

下面的例子列出了在特定网站内容激活了的所有Feature的名称和GUID:

SPSite siteCollection = SPControl.GetContextSite(Context);
SPWeb site 
= siteCollection.AllWebs["Site"];
SPFeatureCollection siteFeatures 
= site.Features;
System.Globalization.CultureInfo cultureInfo 
= new System.Globalization.CultureInfo(1033);

foreach (SPFeature siteFeature in siteFeatures)
{
Response.Write(
"Title: " + siteFeature.Definition.GetTitle(cultureInfo) + "<BR>ID:" 
+
 siteFeature.DefinitionId.ToString() + "<BR><BR>");
}

 

下面的例子使用上面返回的信息来添加Feature到子网站:

SPWeb subSite = site.Webs["SubSite"];
System.Guid guid 
= new System.Guid("6e005f62-f8b2-4073-a673-c035c9129946");
subSite.Features.Add(guid);