Класс SPFeatureCollection
Представляет коллекцию объектов SPFeature .
Иерархия наследования
System.Object
Microsoft.SharePoint.SPFeatureCollection
Пространство имен: Microsoft.SharePoint
Сборка: Microsoft.SharePoint (в Microsoft.SharePoint.dll)
Синтаксис
'Декларация
Public NotInheritable Class SPFeatureCollection _
Implements ICollection, IEnumerable(Of SPFeature), _
IEnumerable
'Применение
Dim instance As SPFeatureCollection
public sealed class SPFeatureCollection : ICollection,
IEnumerable<SPFeature>, IEnumerable
Замечания
Свойство Features класса Microsoft.SharePoint.Administration.SPWebApplication, Microsoft.SharePoint.Administration.SPWebService, SPSiteили SPWeb для получения коллекции функций, которые активируются в веб-приложения, веб-службы, семейство веб-сайтов или веб-узла. Используйте свойство SiteFeatures или WebFeatures класса SPContext для получения коллекции включенные функции для текущего семейства веб-сайтов или веб-узла.
Существование объекта Feature в одну из этих коллекций указывает, активирована в пределах заданной области. Чтобы активировать функцию, необходимо установить его на ферме серверов; Чтобы установить компонент, следует используйте метод Add класса SPFeatureCollection .
Используйте индексатор для возврата объекта одного Feature из коллекции. Например если коллекция присваивается переменной с именем collFeatures, используйтеindexcollFeatures[] в C# илиindexcollFeatures() в Visual Basic, где index — это GUID объекта Feature .
Примеры
В следующем примере кода активирует компонент уровня веб-узла с указанным именем в все дочерние узлы данного семейства узлов.
В этом примере требуется директивы using (Imports в Visual Basic) для пространства имен Microsoft.SharePoint и Microsoft.SharePoint.Utilities .
System.Globalization.CultureInfo oCultureInfo = new
System.Globalization.CultureInfo(1033);
SPFeatureDefinitionCollection collFeatureDefinitions =
SPFarm.Local.FeatureDefinitions;
foreach (SPFeatureDefinition oFeatureDefinition in
collFeatureDefinitions)
{
if (oFeatureDefinition.GetTitle(oCultureInfo) == "Feature_Title")
{
Guid guidFeatureDefinitionID = oFeatureDefinition.Id;
SPWebCollection collWebsites =
SPContext.Current.Site.AllWebs["Site"].Webs;
foreach (SPWeb oWebsite in collWebsites)
{
if (oFeatureDefinition.Scope == SPFeatureScope.Web)
{
SPFeatureCollection collFeatureCollection =
oWebsite.Features;
SPFeature oFeature =
collFeatureCollection.Add(guidFeatureDefinitionID);
Response.Write(SPEncode.HtmlEncode(oFeature.Definition.GetTitle(oCultureInfo)) + " feature added on " + oWebsite.Title + "<BR>");
}
oWebsite.Dispose();
}
}
}
Dim oCultureInfo As New System.Globalization.CultureInfo(1033)
Dim collFeatureDefinitions As SPFeatureDefinitionCollection = SPFarm.Local.FeatureDefinitions
For Each oFeatureDefinition As SPFeatureDefinition In collFeatureDefinitions
If oFeatureDefinition.GetTitle(oCultureInfo) = "Feature_Title" Then
Dim guidFeatureDefinitionID As Guid = oFeatureDefinition.Id
Dim collWebsites As SPWebCollection = SPContext.Current.Site.AllWebs("Site").Webs
For Each oWebsite As SPWeb In collWebsites
If oFeatureDefinition.Scope = SPFeatureScope.Web Then
Dim collFeatureCollection As SPFeatureCollection = oWebsite.Features
Dim oFeature As SPFeature = collFeatureCollection.Add(guidFeatureDefinitionID)
Response.Write(SPEncode.HtmlEncode(oFeature.Definition.GetTitle(oCultureInfo)) & " feature added on " & oWebsite.Title & "<BR>")
End If
oWebsite.Dispose()
Next oWebsite
End If
Next oFeatureDefinition
Примечание
Некоторые объекты реализуют интерфейс IDisposable и следует избегать сохранения этих объектов в памяти, после они больше не нужны. Disposing Objectsсведения о рекомендованные методы программирования, см.
Потокобезопасность
Любые общедоступные элементы static (Shared в Visual Basic) этого типа являются потокобезопасными. Не гарантируется, что любые элементы экземпляров потокобезопасны.