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

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Erweitern eines SharePoint-Elementtyps

Konzepte

Erweitern von SharePoint-Projektelementen