Partager via


SPFeatureCollection - Classe

Représente une collection d'objets SPFeature .

Hiérarchie d’héritage

System.Object
  Microsoft.SharePoint.SPFeatureCollection

Espace de noms :  Microsoft.SharePoint
Assembly :  Microsoft.SharePoint (dans Microsoft.SharePoint.dll)

Syntaxe

'Déclaration
Public NotInheritable Class SPFeatureCollection _
    Implements ICollection, IEnumerable(Of SPFeature),  _
    IEnumerable
'Utilisation
Dim instance As SPFeatureCollection
public sealed class SPFeatureCollection : ICollection, 
    IEnumerable<SPFeature>, IEnumerable

Remarques

Utilisez la propriété Features de la classe Microsoft.SharePoint.Administration.SPWebApplication, Microsoft.SharePoint.Administration.SPWebService, SPSiteou SPWeb pour obtenir la collection de fonctionnalités qui sont activées dans l'application Web, un service Web, une collection de sites ou un site. Utilisez la propriété SiteFeatures ou WebFeatures de la classe SPContext pour obtenir la collection des fonctionnalités activées pour le site ou la collection de sites actuelle.

L'existence d'un objet Feature dans une de ces collections indique qu'il a été activé dans la portée donnée. Pour activer une fonctionnalité, vous devez l'installer dans la batterie de serveurs ; Pour installer un composant, utilisez une méthode de Add de la classe SPFeatureCollection .

Pour renvoyer un objet unique Feature à partir de la collection, utilisez un indexeur. Par exemple, si la collection est assignée à une variable nommée collFeatures, utilisez collFeatures[index] dans C# ou collFeatures(index) dans Visual Basic, où index est le GUID de l'objet Feature .

Exemples

L'exemple de code suivant active une fonctionnalité étendue de site Web avec le titre spécifié dans tous les sous-sites d'une collection de sites spécifique.

Cet exemple requiert les directives using (Imports dans Visual Basic) pour les espaces de noms Microsoft.SharePoint et 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

Notes

Certains objets implémentent l'interface IDisposable , et vous devez éviter de conserver ces objets dans la mémoire après que qu'ils ne sont plus nécessaires. Pour plus d'informations sur les bonnes pratiques de codage, consultez Disposing Objects.

Cohérence de thread

Tous les membres statique (Partagé dans Visual Basic)s publics de ce type sont thread-safe. Cela n’est pas garanti pour les membres d’instance.

Voir aussi

Référence

SPFeatureCollection - Membres

Microsoft.SharePoint - Espace de noms