Как проверить, активирована ли функция? - PullRequest
5 голосов
/ 02 марта 2011

Я знаю, что могу проверить установлен активирован (прочитайте, что Кайл сказал ниже) функции сайта через SPSite.Features.

Я также знаю, что могу добавить или удалить функцию с помощью spSite.Features.Add("featureId") или .Remove.

Вопрос: Как проверить, активна ли функция * 1017?*?Запрашивая SPSite.Features, я получаю все функции для сайта, он возвращает SPFeature объектов.Но я до сих пор не знаю, активна ли эта функция или нет.

В принципе, я хотел бы иметь значение bool spSite.Features["featureId"].isActive или что-то подобное.

1 Ответ

13 голосов
/ 02 марта 2011

SPSite.Features не содержит установленных функций.Он содержит активированных функций.

Чтобы получить список всех установленных компонентов, независимо от того, активированы они или нет, вам нужно получить SPFeatureDefinition объекты из свойства 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;

Лучшее описание от 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...