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);