Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Дата последнего изменения: 9 июля 2010 г.
Применимо к: SharePoint Foundation 2010
В этой статье
Событие FeatureUpgrading
Свойство Version
Метод QueryFeatures
Метод обновления
Для обеспечения возможности обновления компонентов в объектную модель Microsoft SharePoint Foundation добавлены новые типы и члены. К ним относятся следующие элементы:
событие FeatureUpgrading;
свойство Version;
QueryFeaturesM:Microsoft.Office.InfoPath.FormErrorCollection.Add(System.Xml.XPath.XPathNavigator,System.String,System.String)
метод Upgrade;
Событие FeatureUpgrading
Приемники компонента (SPFeatureReceiver) теперь можно использовать для обработки событий FeatureUpgrading(SPFeatureReceiverProperties, String, IDictionary<String, String>). Можно реализовать собственный приемник компонента для обновления экземпляра компонентов.
В число параметров FeatureUpgrading(SPFeatureReceiverProperties, String, IDictionary<String, String>) входят свойства текущего исполняемого контекста, имя исполняемого настраиваемого действия обновления и словарь параметров настраиваемого действия обновления.
Пример использования метода FeatureUpgrading(SPFeatureReceiverProperties, String, IDictionary<String, String>) см. в статье Практическое руководство. Использование кода обновления для активации компонента с зависимостями.
Свойство Version
В существующем классе SPFeatureDefinition уже есть свойство Version, а класс SPFeature в SharePoint Foundation также предоставляет новое свойство Version. Однако текущая версия компонента, определенная в файле Feature.xml — это версия, заданная в классе SPFeatureDefinition. Version — уникальная версия класса, связанная с экземпляром Feature в указанной области, которая может не совпадать с версией определения компонента.
Объект в определенной области, такой как SPWebApplication или SPSite, необходимо обновить, если у одного или нескольких компонентов, связанных с объектом, версия более старая, чем версия указанная в файле Feature.xml, связанном с этим экземпляром Feature.
Формат версии: xxxx. xxxx. xxxx. xxxx, где x — одна цифра. Если в файле Feature.xml не указывается атрибут Version, версия по умолчанию — "0.0.0.0".
![]() |
---|
В SharePoint Foundation не разрешены "короткие" версии, в которых указывается менее четырех цифр (например, 1.0); при использовании таких версий вызывается исключение. |
Метод QueryFeatures
Новые методы QueryFeatures позволяют запрашивать компоненты в различных областях с помощью набора критериев фильтрации. В классах SPWebService, SPWebApplication, SPContentDatabase и SPSite используется метод QueryFeatures, перегрузки которого позволяют указывать различные критерии определяющие, какой набор результатов экземпляров компонента следует вернуть.
SPWebService — поиск активированных экземпляров компонента в ферме серверов в соответствии с критериями фильтрации.
SPWebApplication — поиск веб-приложения, семейства сайтов и компонентов в области веб-сайта в соответствии с указанными критериями фильтрации. Запрос выполняется для всех баз данных контента в объекте веб-приложения, а возвращаемое семейство упорядочено по базам данных контента.
SPContentDatabase — поиск компонентов в базе данных контента в области семейства сайтов и веб-сайта в соответствии с указанными критериями фильтрации. Возвращаемое семейство упорядочивается в соответствии с иерархией веб-сайта. Например, компоненты родительского веб-сайта представляются до компонентов дочернего веб-сайта, а иерархия обрабатывается сверху вниз.
SPSite — поиск всех компонентов в области семейства сайтов и веб-сайта в соответствии с указанными критериями фильтрации. Возвращаемое семейство упорядочивается в соответствии с иерархией веб-сайта. Компоненты родительского веб-сайта представляются до компонентов дочернего веб-сайта, а иерархия обрабатывается сверху вниз. Перегрузки метода QueryFeatures для этого класса доступны в новых клиентских объектных моделях.
Перегрузки
Следующие четыре перегрузки метода QueryFeatures представлены для каждого из классов, указанных выше.
Возврат всех экземпляров компонента в указанной области. Параметр needsUpgrade можно использовать для возврата всех экземпляров компонентов, которые требуется обновить.
public Microsoft.SharePoint.SPFeatureQueryResultCollection QueryFeatures(Microsoft.SharePoint.SPFeatureScope scope, bool needsUpgrade)
Возврат всех экземпляров компонента с указанным идентификатором компонента. Параметр needsUpgrade можно использовать для возврата всех экземпляров компонентов, которые требуется обновить.
public Microsoft.SharePoint.SPFeatureQueryResultCollection QueryFeatures(System.Guid featureId, bool needsUpgrade)
Возврат всех экземпляров компонента с указанным идентификатором компонента и номером версии.
public Microsoft.SharePoint.SPFeatureQueryResultCollection QueryFeatures(System.Guid featureId, System.Version featureVersion)
Возврат всех экземпляров компонента с указанным идентификатором компонента.
public Microsoft.SharePoint.SPFeatureQueryResultCollection QueryFeatures(System.Guid featureId)
Класс SPFeatureQueryResultCollection используется для перечисления компонентов, которые возвращаются с помощью операции QueryFeatures.
Во время обновления метод QueryFeatures определяет, устарел ли экземпляр компонента при обнаружении версии экземпляра, номер которой меньше текущего номера версии определения Feature.xml. На основе директив UpgradeActions в файле Feature.xml обновление выполняется для каждого экземпляра, для которого оно требуется. После успешного обновления экземпляра компонента его номер версии обновляется в соответствии с номером версии определения файла Feature.xml.
Метод обновления
В классе SPFeature представлен метод Upgrade(Boolean) для обновления экземпляра Feature во всех областях: Farm, WebApplication, Site и Web.
При вызове метода QueryFeatures в зависимом экземпляре компонента сначала обновляется экземпляр компонента самого высокого уровня, а затем обновляются все экземпляры компонента, которые зависят от этого экземпляра компонента. Такой иерархический процесс обеспечивает синхронизацию всех зависимых экземпляров компонента с экземпляром компонента, от которого они зависят.
![]() |
---|
Не вызывайте метод Upgrade(Boolean) в приемнике события обновления компонента. Например, не вызывайте метод в компонентах, которые можно получить с помощью следующего кода: SPFeatureQueryResultCollection queryResults = myWebService.QueryFeatures(myScope, true); IEnumerator<SPFeature> featureEnumerator = queryResults.GetEnumerator(); |