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


Практическое руководство. Создание расширения элемента проекта SharePoint

Расширение элемента создается в случаях, когда требуется добавить функции к уже установленному в Visual Studio элементу проекта SharePoint.Дополнительные сведения см. в разделе Расширение элементов проектов SharePoint.

Создание расширения элемента проекта

  1. Создайте проект библиотеки классов.

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

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

  3. Создайте класс, реализующий интерфейс ISharePointProjectItemTypeExtension.

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

  5. В текущей реализации метода Initialize с помощью членов параметра projectItemType определите поведение расширения.Этот параметр представляет собой объект ISharePointProjectItemType, который предоставляет доступ к событиям, определенным в интерфейсах ISharePointProjectItemEvents и ISharePointProjectItemFileEvents.Для осуществления доступа к конкретному экземпляру расширяемого типа проектного элемента необходимо обработать события ISharePointProjectItemEvents, такие как ProjectItemAdded и ProjectItemInitialized.

Пример

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

Imports Microsoft.VisualStudio.SharePoint
Imports System
Imports System.ComponentModel
Imports System.ComponentModel.Composition

Namespace Contoso.ExampleProjectItemExtension

    <Export(GetType(ISharePointProjectItemTypeExtension))> _
    <SharePointProjectItemType("Microsoft.VisualStudio.SharePoint.EventHandler")> _
    Friend Class ExampleProjectItemExtension
        Implements ISharePointProjectItemTypeExtension

        Private Sub Initialize(ByVal projectItemType As ISharePointProjectItemType) _
            Implements ISharePointProjectItemTypeExtension.Initialize
            AddHandler projectItemType.ProjectItemAdded, AddressOf ProjectItemAdded
        End Sub

        Private Sub ProjectItemAdded(ByVal Sender As Object, ByVal e As SharePointProjectItemEventArgs)
            Dim projectItem As ISharePointProjectItem = CType(Sender, ISharePointProjectItem)
            Dim Message As String = String.Format("An Event Handler project item named {0} was added to the {1} project.", _
                projectItem.Name, projectItem.Project.Name)
            projectItem.Project.ProjectService.Logger.WriteLine(Message, LogCategory.Message)
        End Sub
    End Class
End Namespace
using Microsoft.VisualStudio.SharePoint;
using System;
using System.ComponentModel;
using System.ComponentModel.Composition;

namespace Contoso.ExampleProjectItemExtension
{
    [Export(typeof(ISharePointProjectItemTypeExtension))]
    [SharePointProjectItemType("Microsoft.VisualStudio.SharePoint.EventHandler")]
    internal class ExampleProjectItemExtension : ISharePointProjectItemTypeExtension
    {
        public void Initialize(ISharePointProjectItemType projectItemType)
        {
            projectItemType.ProjectItemAdded += projectItemType_ProjectItemAdded;
        }

        void projectItemType_ProjectItemAdded(object sender, SharePointProjectItemEventArgs e)
        {
            ISharePointProjectItem projectItem = (ISharePointProjectItem)sender;
            string message = String.Format("An Event Handler project item named {0} was added to the {1} project.",
                projectItem.Name, projectItem.Project.Name);
            projectItem.Project.ProjectService.Logger.WriteLine(message, LogCategory.Message);
        }
    }
}

В этом примере служба проекта SharePoint используется для записи сообщения в окна Выходные данные и Список ошибок.Дополнительные сведения см. в разделе Использование службы проектов SharePoint.

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

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

  • Microsoft.VisualStudio.SharePoint

  • System.ComponentModel.Composition

Развертывание расширения

Чтобы развернуть расширение, создайте пакет расширения Visual Studio (VSIX) для сборки и всех остальных файлов, которые предположительно будут распространяться с расширением.Дополнительные сведения см. в разделе Разработка расширений для средств SharePoint в Visual Studio.

См. также

Задачи

Пошаговое руководство. Расширение типа проектного элемента SharePoint

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

Расширение элементов проектов SharePoint