Поделиться через


Практическое руководство. Создание команды SharePoint

Если в расширениях средств SharePoint требуется использовать серверную объектную модель, необходимо создать для вызова API настраиваемую команду SharePoint.Команда SharePoint определяется в сборке, которая может напрямую вызывать серверную объектную модель.

Дополнительные сведения о командах SharePoint см. в разделе Вызов объектных моделей SharePoint.

Создание команды SharePoint

  1. Создайте проект библиотеки классов с приведенной ниже конфигурацией.

    ПримечаниеПримечание

    Команду SharePoint нельзя реализовать в том же проекта, в котором определяется расширение средств SharePoint, поскольку целевой платформой команд SharePoint является .NET Framework 3.5, а расширения средств SharePoint предназначены для .NET Framework 4.Следует определить все команды SharePoint, используемые расширением в отдельном проекте.Дополнительные сведения см. в разделе Разработка расширений для средств SharePoint в Visual Studio.

  2. Добавьте ссылки на следующие сборки:

    • Microsoft.VisualStudio.SharePoint.Commands

    • Microsoft.SharePoint

  3. Создайте в классе проекта метод, определяющий команду SharePoint.Этот метод должен соответствовать следующим требованиям.

    • У него может быть один или два параметра.

      Первым параметром должен быть объект ISharePointCommandContext.Этот объект предоставляет класс Microsoft.SharePoint.SPSite или Microsoft.SharePoint.SPWeb, в котором выполняется команда.Также он предоставляет объект ISharePointCommandLogger, который можно использовать для записи сообщений в окно Выходные данные или окно Список ошибок в Visual Studio.

      Тип второго параметра пользователь может выбрать на свое усмотрение, он этот параметр не обязательный.Этот параметр можно добавить в команду SharePoint при необходимости передать в нее данные из расширения средств SharePoint.

    • У него может быть возвращаемое значение, но оно необязательное.

    • Второй параметр и возвращаемое значение должны относиться к типу, который можно сериализовать средствами Windows Communication Foundation (WCF).Дополнительные сведения см. в разделах Types Supported by the Data Contract Serializer и Using the XmlSerializer Class.

    • У метода может быть любой уровень видимости (public, internal или private), кроме того, он может быть статическим или не статическим.

  4. Примените атрибут SharePointCommandAttribute к методу.Этот атрибут задает уникальный идентификатор команды; данный идентификатор не обязательно должен совпадать с именем метода.

    Такой же уникальный идентификатор нужно задать при вызове команды из расширения средств SharePoint.Дополнительные сведения см. в разделе Практическое руководство. Выполнение команды SharePoint.

Пример

В следующем примере кода показана команда SharePoint с идентификатором Contoso.Commands.UpgradeSolution.Эта команда использует интерфейсы API в серверной объектной модели для обновления до развертываемого решения.

<SharePointCommand("Contoso.Commands.UpgradeSolution")> _
Private Sub UpgradeSolution(ByVal context As ISharePointCommandContext, ByVal fullWspPath As String)
    Dim solution As SPSolution = SPFarm.Local.Solutions(Path.GetFileName(fullWspPath))
    If solution Is Nothing Then
        Throw New InvalidOperationException("The solution has not been deployed.")
    End If
    solution.Upgrade(fullWspPath)
End Sub
[SharePointCommand("Contoso.Commands.UpgradeSolution")]
private void UpgradeSolution(ISharePointCommandContext context, string fullWspPath)
{
    SPSolution solution = SPFarm.Local.Solutions[Path.GetFileName(fullWspPath)];

    if (solution == null)
    {
        throw new InvalidOperationException("The solution has not been deployed.");
    }

    solution.Upgrade(fullWspPath);
}

Кроме явного первого параметра ISharePointCommandContext у этой команды также есть настраиваемый параметр строкового типа, содержащий полный путь к WSP-файлу, который обновляется до сайта SharePoint.Данный код в контексте полного примера см. в раздел Пошаговое руководство. Создание пользовательского шага развертывания для проектов SharePoint.

Компиляция кода

Для этого примера требуются ссылки на следующие сборки:

  • Microsoft.VisualStudio.SharePoint.Commands

  • Microsoft.SharePoint

Развертывание команды

Для развертывания команды включите ее сборку в один пакет расширения Visual Studio (VSIX) со сборкой развертывания, использующей эту команду.Кроме того следует также добавить в VSIXMANIFEST-файл расширения запись для сборки команды.Дополнительные сведения см. в разделе Разработка расширений для средств SharePoint в Visual Studio.

См. также

Задачи

Практическое руководство. Выполнение команды SharePoint

Пошаговое руководство. Расширение обозревателя сервера, чтобы в нем отображались веб-части

Основные понятия

Вызов объектных моделей SharePoint