2011-03-02 15 views
5

Sé que puedo comprobar el instalado activado(Kyle leído lo que dijo a continuación) características de un sitio a través de SPSite.Features.¿Cómo verificar si una característica ha sido activada?

También sé que puedo agregar o eliminar una función a través de spSite.Features.Add("featureId") o .Remove.

La pregunta es: ¿Cómo puedo comprobar si una función es activa? Al consultar SPSite.Features, obtengo todas las características para el sitio, devuelve SPFeature objetos. Pero todavía no sé si la característica está activa o no.

Básicamente me gustaría tener un bool de spSite.Features["featureId"].isActive o algo similar.

+0

Comprobar este enlace. Espero que sea una ayuda para usted http://www.directsharepoint.com/2011/04/programmatically-check-feature-is.html –

Respuesta

12

SPSite.Features no contiene características instaladas. Contiene funciones activadas.

Para obtener una lista de todas las características que están instaladas, ya sea que estén activadas o no, debe tomar los objetos SPFeatureDefinition de la propiedad SPSite.FeatureDefinitions.

// Get a list of activated features 
SPFeatureCollection features = SPContext.Current.Site.Features; 

// Get a list of all feature definitions available 
SPFeatureDefinitionCollection featureDefinitions = SPContext.Current.Site.FeatureDefinitions; 

Una mejor descripción de msdn:

The presence of a feature in a collection at the farm 
(Microsoft.SharePoint.Administration.SPWebService), Web application 
(Microsoft.SharePoint.Administration.SPWebApplication), site collection 
([T:Microsoft.SharePoint.SPSite)], or Web site (Microsoft.SharePoint.SPWeb) 
levels indicates that the feature is activated. Lack of an SPFeature object 
indicates that the object is not active in the given scope. 

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsite.featuredefinitions.aspx

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsite.features.aspx

+0

Explicación perfecta - Lo extraño es que de alguna manera en Powershell SPSite.Features devuelve la función incluso cuando Lo deshabilité a través de la interfaz ... –

+2

Corrección: debe deshacerse del objeto del sitio después de deshabilitar una función, y luego muestra el estado actual de las cosas. –

Cuestiones relacionadas