Gewusst wie: Erstellen einer SharePoint-Projektelementerweiterung
Erstellen Sie eine Projektelementerweiterung, wenn Sie weitere Funktionen zu einem SharePoint-Projektelement hinzufügen möchten, das in Visual Studio bereits installiert ist.Weitere Informationen finden Sie unter Erweitern von SharePoint-Projektelementen.
So erstellen Sie eine Projektelementerweiterung
Erstellen Sie ein Klassenbibliotheksprojekt.
Fügen Sie Verweise auf die folgenden Assemblys hinzu:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Erstellen Sie eine Klasse, die die ISharePointProjectItemTypeExtension-Schnittstelle implementiert.
Fügen Sie der Klasse die folgenden Attribute hinzu:
System.ComponentModel.Composition.ExportAttribute.Anhand dieses Attributs kann Visual Studio Ihre ISharePointProjectItemTypeExtension-Implementierung erkennen und laden.Übergeben Sie den Typ ISharePointProjectItemTypeExtension an den Attributkonstruktor.
SharePointProjectItemTypeAttribute.In einer Projektelementerweiterung identifiziert dieses Attribut das Projektelement, das Sie erweitern möchten.Übergeben Sie die ID des Projektelements an den Attributkonstruktor.Eine Liste der IDs der Projektelemente, die in Visual Studio enthalten sind, finden Sie Erweitern von SharePoint-Projektelementenweitere Informationen.
Verwenden Sie in der Implementierung der Initialize-Methode Member des projectItemType-Parameters, um das Verhalten der Erweiterung zu definieren.Dieser Parameter ist ein ISharePointProjectItemType-Objekt, das Zugriff auf die in den ISharePointProjectItemEvents- und ISharePointProjectItemFileEvents-Schnittstellen definierten Ereignisse bietet.Wenn Sie auf eine bestimmte Instanz des erweiterten Projektelementtyps zugreifen möchten, behandeln Sie ISharePointProjectItemEvents-Ereignisse wie ProjectItemAdded und ProjectItemInitialized.
Beispiel
Im folgenden Codebeispiel wird veranschaulicht, wie eine einfache Erweiterung für das Projektelement Ereignisempfänger erstellt wird.Jedes Mal, wenn der Benutzer einem SharePoint-Projekt ein Projektelement vom Typ "Ereignisempfänger" hinzufügt, schreibt diese Erweiterung eine Meldung in die Fenster Ausgabe und Fehlerliste.
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);
}
}
}
In diesem Beispiel wird der SharePoint-Projektdienst verwendet, um die Meldung in die Fenster Ausgabe und Fehlerliste zu schreiben.Weitere Informationen finden Sie unter Verwenden des SharePoint-Projektdiensts.
Kompilieren des Codes
Für dieses Beispiel sind Verweise auf die folgenden Assemblys erforderlich:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Bereitstellen der Erweiterung
Erstellen Sie ein Visual Studio-Erweiterungspaket (VSIX) für die Assembly und alle weiteren Dateien, die Sie mit der Erweiterung verteilen möchten, um die Erweiterung bereitzustellen.Weitere Informationen erhalten Sie unter Bereitstellen von Erweiterungen für die SharePoint-Tools in Visual Studio.
Siehe auch
Aufgaben
Exemplarische Vorgehensweise: Erweitern eines SharePoint-Elementtyps