SPFeatureCollection-Klasse

Stellt eine Auflistung von SPFeature -Objekten dar.

Vererbungshierarchie

System.Object
  Microsoft.SharePoint.SPFeatureCollection

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaration
Public NotInheritable Class SPFeatureCollection _
    Implements ICollection, IEnumerable(Of SPFeature),  _
    IEnumerable
'Usage
Dim instance As SPFeatureCollection
public sealed class SPFeatureCollection : ICollection, 
    IEnumerable<SPFeature>, IEnumerable

Hinweise

Verwenden Sie die Features -Eigenschaft der t: Microsoft.SharePoint.Administration.SPWebApplication, Microsoft.SharePoint.Administration.SPWebService, SPSiteoder SPWeb Klasse abrufen die Auflistung der Features, die in der Webanwendung, Webdienst, Websitesammlung oder Website aktiviert werden. Verwenden Sie die SiteFeatures oder WebFeatures -Eigenschaft des t: SPContext -Klasse die Auflistung der aktivierten Features für die aktuelle Websitesammlung oder Website ab.

Das Vorhandensein eines Feature -Objekts in einer der folgenden Auflistungen gibt an, dass es innerhalb des angegebenen Bereichs aktiviert wurde. Um ein Feature zu aktivieren, müssen Sie sie in der Serverfarm installieren; um ein Feature zu installieren, verwenden Sie eine Add -Methode der SPFeatureCollection -Klasse.

Verwenden Sie eine Indexerstellung, um ein einzelnes Feature -Objekt aus der Auflistung zurückzugeben. Beispielsweise wenn die Auflistung eine Variable, die mit dem Namen collFeatureszugewiesen ist, verwenden Sie collFeatures[index] in c# oder collFeatures(index) in Visual Basic index die GUID des Feature -Objekts entspricht.

Beispiele

Im folgenden Codebeispiel wird ein Feature Websitebereich mit dem angegebenen Titel in allen Unterwebsites einer bestimmten Websitesammlung aktiviert.

Dieses Beispiel erfordert using Richtlinien (Imports in Visual Basic) für die Namespaces Microsoft.SharePoint und 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

Hinweis

Bestimmte Objekte die IDisposable -Schnittstelle implementieren, und Sie müssen vermeiden, diese Objekte im Arbeitsspeicher beibehalten, wenn sie nicht mehr benötigt werden. Informationen zu bewährten Codierung finden Sie unter Disposing Objects.

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Die Threadsicherheit von Instanzmembern ist nicht gewährleistet.

Siehe auch

Referenz

SPFeatureCollection-Member

Microsoft.SharePoint-Namespace