Практическое руководство. Выполнение команды SharePoint
Если в расширениях средств SharePoint требуется использовать серверную объектную модель, необходимо создать для вызова API настраиваемую команду SharePoint.После определения команды и развертывания ее с помощью расширения средств SharePoint расширение может выполнять команду для вызова объектной модели сервера SharePoint.Для выполнения команды воспользуйтесь одним из методов ExecuteCommand объекта ISharePointConnection.
Дополнительные сведения о командах SharePoint см. в разделе Вызов объектных моделей SharePoint.
Выполнение команды SharePoint
Получите объект ISharePointConnection в расширении средств SharePoint.Способ получения объекта ISharePointConnection зависит от типа создаваемого расширения.
В расширении системы проектов SharePoint следует использовать свойство ISharePointProject.SharePointConnection.
Дополнительные сведения о расширениях системы проектов см. в разделе Расширение системы проектов SharePoint.
В расширении узла Подключения SharePoint в обозревателе серверов следует использовать свойство IExplorerNodeContext.SharePointConnection.Чтобы получить объект IExplorerNodeContext, используйте свойство IExplorerNode.Context.
Дополнительные сведения о расширениях обозревателя серверов см. в разделе Расширение узла подключений SharePoint в обозревателе сервера.
В коде, который не является частью расширения средств SharePoint, например в мастере шаблонов проектов, следует использовать свойство ISharePointProjectService.SharePointConnection.
Дополнительные сведения об обращении к службе проектов см. в разделе Использование службы проектов SharePoint.
Вызовите один из методов ExecuteCommand объекта ISharePointConnection.Передайте в первый аргумент метода ExecuteCommand имя команды, которую необходимо выполнить.Если у команды есть настраиваемый параметр, передайте этот параметр во второй аргумент метода ExecuteCommand.
Для каждой из поддерживаемых сигнатур команды имеется отдельная перегруженная версия метода ExecuteCommand.В следующей таблице перечислены поддерживаемые сигнатуры и соответствующие перегруженные методы.
Сигнатура команды
Используемая перегруженная версия ExecuteCommand
У команды есть только заданный по умолчанию параметр ISharePointCommandContext и отсутствует возвращаемое значение.
У команды есть только заданный по умолчанию параметр ISharePointCommandContext и возвращаемое значение.
У команды есть два параметра (параметр ISharePointCommandContext, используемый по умолчанию, и пользовательский параметр), а также возвращаемое значение.
У команды есть два параметра и возвращаемое значение.
Пример
В следующем примере кода показано, как с помощью перегруженной версии метода ExecuteCommand<T>(String, T) вызвать команду Contoso.Commands.UpgradeSolution, описанную в разделе Практическое руководство. Создание команды SharePoint.
Private Sub Execute(ByVal context As IDeploymentContext) _
Implements IDeploymentStep.Execute
context.Logger.WriteLine("Upgrading solution: " & solutionName, LogCategory.Status)
context.Project.SharePointConnection.ExecuteCommand("Contoso.Commands.UpgradeSolution", _
solutionFullPath)
End Sub
public void Execute(IDeploymentContext context)
{
context.Logger.WriteLine("Upgrading solution: " + solutionName, LogCategory.Status);
context.Project.SharePointConnection.ExecuteCommand("Contoso.Commands.UpgradeSolution",
solutionFullPath);
}
Продемонстрированный в данном примере метод Execute является реализацией метода Execute интерфейса IDeploymentStep на настраиваемом этапе развертывания.Данный код в контексте полного примера см. в раздел Пошаговое руководство. Создание пользовательского шага развертывания для проектов SharePoint.
При вызове метода ExecuteCommand<T>(String, T) необходимо учитывать следующие особенности.
Первый параметр определяет команду, которую необходимо вызвать.Эта строка соответствует значению, переданному атрибуту SharePointCommandAttribute при определении команды.
Второй параметр представляет собой значение, которое необходимо передать команде в качестве второго настраиваемого параметра.В данном случае это полный путь к WSP-файлу, обновляемому до сайта SharePoint.
Этот код не передает команде неявный параметр ISharePointCommandContext.Данный параметр передается в команду автоматически при вызове команды из расширения системы проектов SharePoint или из расширения узла Подключения SharePoint в обозревателе серверов.В решениях других типов, например в мастере шаблонов проектов, реализующем интерфейс Microsoft.VisualStudio.TemplateWizard.IWizard, этот параметр имеет значение null.
Компиляция кода
В этом примере необходима ссылка на сборку Microsoft.VisualStudio.SharePoint.
См. также
Задачи
Пошаговое руководство. Расширение обозревателя сервера, чтобы в нем отображались веб-части