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.