Freigeben über


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

  1. Erstellen Sie ein Klassenbibliotheksprojekt.

  2. Fügen Sie Verweise auf die folgenden Assemblys hinzu:

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

  3. Erstellen Sie eine Klasse, die die ISharePointProjectItemTypeExtension-Schnittstelle implementiert.

  4. Fügen Sie der Klasse die folgenden Attribute hinzu:

  5. 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 finden Sie unter Bereitstellen von Erweiterungen für die SharePoint-Tools in Visual Studio.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Erweitern eines SharePoint-Elementtyps

Weitere Ressourcen

Erweitern von SharePoint-Projektelementen