Вопрос: Получить свойства фермы из SharePoint 2010


Я пытаюсь получить список свойств фермы с сайта центра администрирования SharePoint 2010. Проблема, с которой я сталкиваюсь, заключается в том, что мне удалось только отступить сайт  Особенности. Следующий код - это то, с чем я сейчас работаю:

foreach (SPFeature feature in SPAdministrationWebApplication.Local.Features)
{
    string featureName = feature.Definition.DisplayName;
    if (featureName != null)
    {
        XElement newItem = new XElement("Item", featureName);
        infoTree.Add(newItem);
    }

}

Я также попытался использовать SPFarm.Local.FeatureDefinitions  следующим образом:

foreach (SPFeatureDefinition feature in SPFarm.Local.FeatureDefinitions)
{
    string featureName = feature.DisplayName;
if (featureName != null)
    {
        XElement newItem = new XElement("Item", featureName);
        infoTree.Add(newItem);
    }

но безрезультатно. Следующий подход, к которому я приближаюсь, - это использовать SPFeatureCollection, Есть ли лучший подход к этой проблеме? В основном я просто ищу некоторые подсказки, поскольку я ничего не получил из SPFeatureCollection только пока.

РЕДАКТИРОВАТЬ Я возился с

SPFeatureCollection featureCollect = SPContext.Current.Site.Features  

но до сих пор у меня проблема с SPContext возвращающий null.


5


источник


Ответы:


Я думаю, что вы на правильном пути со вторым примером. Часть, которую вам не хватает, - это проверка области возможностей. SPFarm.Local.FeatureDefinitions возвращает коллекцию всех функций, определенных в ферме (коллекция объектов SPFeatureDefinition). Оттуда вы можете проверить свойство Scope объекта SPFeatureDefinition, чтобы сузить его до объектов, ограниченных фермой.

Пример:

foreach (SPFeatureDefinition feature in SPFarm.Local.FeatureDefinitions)
{
    if (feature.Scope = "Farm")
    {
        string featureName = feature.DisplayName;
        if (featureName != null)
        {
            XElement newItem = new XElement("Item", featureName);
            infoTree.Add(newItem);
        }
    }

Дополнительная ссылка MSDN Вот  для доступных свойств объекта SPFeatureDefinition.


2