Share via


Clase SPFeatureCollection

Representa una colección de objetos SPFeature .

Jerarquía de la herencia

System.Object
  Microsoft.SharePoint.SPFeatureCollection

Espacio de nombres:  Microsoft.SharePoint
Ensamblado:  Microsoft.SharePoint (en Microsoft.SharePoint.dll)

Sintaxis

'Declaración
Public NotInheritable Class SPFeatureCollection _
    Implements ICollection, IEnumerable(Of SPFeature),  _
    IEnumerable
'Uso
Dim instance As SPFeatureCollection
public sealed class SPFeatureCollection : ICollection, 
    IEnumerable<SPFeature>, IEnumerable

Comentarios

Utilice la propiedad Features de la clase Microsoft.SharePoint.Administration.SPWebApplication, Microsoft.SharePoint.Administration.SPWebService, SPSiteo SPWeb para obtener la colección de características que se activan en la aplicación Web, el servicio Web, la colección de sitios o el sitio. Utilice la propiedad SiteFeatures o WebFeatures de la clase SPContext para obtener la colección de características activadas para la colección de sitios actual o el sitio.

La existencia de un objeto Feature dentro de una de estas colecciones se indica que se ha activado en el ámbito especificado. Para activar una característica, debe instalarlo en la granja de servidores; Para instalar una característica, use un método Add de la clase SPFeatureCollection .

Utilice un indizador para devolver un objeto único Feature de la colección. Por ejemplo, si la colección se asigna a una variable denominada collFeatures, use collFeatures[index] en C# o collFeatures(index) en Visual Basic, donde index es el GUID del objeto Feature .

Ejemplos

En el ejemplo de código siguiente se activa una característica con ámbito de sitio Web con el título especificado en todos los subsitios de una colección de sitios específica.

En este ejemplo se requieren using directivas (Imports en Visual Basic) para los espacios de nombres Microsoft.SharePoint y 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

Nota

Determinados objetos implementan la interfaz de IDisposable y, a continuación, se debe evitar la conservación de estos objetos en la memoria que ya no se necesitan. Para obtener información acerca de buenas prácticas de codificación, vea Disposing Objects.

Seguridad para subprocesos

Los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para los subprocesos.

Vea también

Referencia

Miembros SPFeatureCollection

Espacio de nombres Microsoft.SharePoint