SPFeatureCollection class
Representa uma coleção de objetos SPFeature .
Inheritance hierarchy
System.Object
Microsoft.SharePoint.SPFeatureCollection
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaração
Public NotInheritable Class SPFeatureCollection _
Implements ICollection, IEnumerable(Of SPFeature), _
IEnumerable
'Uso
Dim instance As SPFeatureCollection
public sealed class SPFeatureCollection : ICollection,
IEnumerable<SPFeature>, IEnumerable
Comentários
Use a propriedade Features da classe Microsoft.SharePoint.Administration.SPWebApplication, Microsoft.SharePoint.Administration.SPWebService, SPSiteou SPWeb para obter a coleção de recursos que são ativados no aplicativo da Web, serviço da Web, conjunto de sites ou site. Use a propriedade SiteFeatures ou WebFeatures da classe SPContext para obter a coleção de recursos ativados para o atual conjunto de sites ou site.
A existência de um objeto de Feature dentro de uma dessas coleções indica que ele foi ativado dentro do escopo determinado. Para ativar um recurso, você deve instalá-lo no farm de servidores; Para instalar um recurso, use um método Add da classe SPFeatureCollection .
Use um indexador para retornar um objeto único Feature da coleção. Por exemplo, se a coleção for atribuída a uma variável chamada collFeatures, use collFeatures[index] em C# ou deindexde collFeatures() no Visual Basic, onde index é o GUID do objeto Feature .
Examples
O exemplo de código a seguir ativa um recurso com escopo de site da Web com o título especificado em todos os subsites do conjunto de sites específico.
Este exemplo requer diretivas de using (Imports no Visual Basic) para os namespaces Microsoft.SharePoint e 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
Dica
Determinados objetos implementam a interface IDisposable , e você deve evitar reter esses objetos na memória depois que eles não são mais necessários. Para obter informações sobre boas práticas de codificação, consulte Disposing Objects.
Thread safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.