Практическое руководство. Создание расширения элемента проекта SharePoint
Расширение элемента создается в случаях, когда требуется добавить функции к уже установленному в Visual Studio элементу проекта SharePoint.Дополнительные сведения см. в разделе Расширение элементов проектов SharePoint.
Создание расширения элемента проекта
Создайте проект библиотеки классов.
Добавьте ссылки на следующие сборки:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Создайте класс, реализующий интерфейс ISharePointProjectItemTypeExtension.
Добавьте следующие атрибуты к классу:
System.ComponentModel.Composition.ExportAttribute.Этот атрибут позволяет Visual Studio находить и загружать пользовательскую реализацию ISharePointProjectItemTypeExtension.Передайте конструктору этого атрибута тип ISharePointProjectItemTypeExtension;
SharePointProjectItemTypeAttribute.В расширении элемента проекта этот атрибут определяет элемент проекта, которые требуется расширить.Передайте идентификатор проектного элемента конструктору атрибутов.Список идентификаторов элементов проектов, входящих в состав Visual Studio см. в разделе Расширение элементов проектов SharePoint.
В текущей реализации метода 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