Gewusst wie: Definieren eines SharePoint-Projektelementtyps
Definieren Sie einen Projektelementtyp, wenn Sie ein benutzerdefiniertes SharePoint-Projektelement erstellen möchten.Weitere Informationen finden Sie unter Definieren von benutzerdefinierten SharePoint-Projektelementtypen.
So definieren Sie einen Projektelementtyp
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 ISharePointProjectItemTypeProvider-Schnittstelle implementiert.
Fügen Sie der Klasse die folgenden Attribute hinzu:
System.ComponentModel.Composition.ExportAttribute.Anhand dieses Attributs kann Visual Studio Ihre ISharePointProjectItemTypeProvider-Implementierung erkennen und laden.Übergeben Sie den Typ ISharePointProjectItemTypeProvider an den Attributkonstruktor.
SharePointProjectItemTypeAttribute.In einer Projektelementtypdefinition gibt dieses Attribut den Zeichenfolgenbezeichner für das neue Projektelement an.Es wird empfohlen, das Format Unternehmensname.Funktionsname zu verwenden, um sicherzustellen, dass alle Projektelemente einen eindeutigen Namen haben.
SharePointProjectItemIconAttribute.Dieses Attribut gibt das Symbol an, das im Projektmappen-Explorer für dieses Projektelement angezeigt wird.Dieses Attribut ist optional. Wenn Sie es nicht auf die Klasse anwenden, zeigt Visual Studio ein Standardsymbol für das Projektelement an.Wenn Sie dieses Attribut festlegen, übergeben Sie den vollqualifizierten Namen eines Symbols oder einer Bitmap, die in die Assembly eingebettet ist.
Verwenden Sie in der Implementierung der InitializeType-Methode Member des projectItemTypeDefinition-Parameters, um das Verhalten des Projektelementtyps zu definieren.Dieser Parameter ist ein ISharePointProjectItemTypeDefinition-Objekt, das Zugriff auf die in den ISharePointProjectItemEvents- und ISharePointProjectItemFileEvents-Schnittstellen definierten Ereignisse bietet.Wenn Sie auf eine bestimmte Instanz des Projektelementtyps zugreifen möchten, behandeln Sie ISharePointProjectItemEvents-Ereignisse wie ProjectItemAdded und ProjectItemInitialized.
Beispiel
Im folgenden Codebeispiel wird das Definieren eines einfachen Projektelementtyps veranschaulicht.Dieser Projektelementtyp schreibt eine Meldung in die Fenster Ausgabe und Fehlerliste, wenn einem Projekt von einem Benutzer ein Projektelement dieses Typs hinzugefügt wird.
Imports System
Imports System.ComponentModel.Composition
Imports Microsoft.VisualStudio.SharePoint
Namespace Contoso.ExampleProjectItemType
<Export(GetType(ISharePointProjectItemTypeProvider))> _
<SharePointProjectItemType("Contoso.ExampleProjectItemType")> _
<SharePointProjectItemIcon("ExampleProjectItemType.ProjectItemIcon.ico")> _
Friend Class ExampleProjectItemType
Implements ISharePointProjectItemTypeProvider
Private Sub InitializeType(ByVal projectItemTypeDefinition As ISharePointProjectItemTypeDefinition) _
Implements ISharePointProjectItemTypeProvider.InitializeType
projectItemTypeDefinition.Name = "ExampleProjectItemType"
projectItemTypeDefinition.SupportedDeploymentScopes = _
SupportedDeploymentScopes.Site Or SupportedDeploymentScopes.Web
projectItemTypeDefinition.SupportedTrustLevels = SupportedTrustLevels.All
AddHandler projectItemTypeDefinition.ProjectItemAdded, AddressOf ProjectItemAdded
End Sub
Private Sub ProjectItemAdded(ByVal Sender As Object, ByVal e As SharePointProjectItemEventArgs)
Dim Message As String = String.Format("An example project item named {0} was added to the {1} project.", _
e.ProjectItem.Name, e.ProjectItem.Project.Name)
e.ProjectItem.Project.ProjectService.Logger.WriteLine(Message, LogCategory.Message)
End Sub
End Class
End Namespace
using System;
using Microsoft.VisualStudio.SharePoint;
using System.ComponentModel.Composition;
namespace Contoso.ExampleProjectItemType
{
[Export(typeof(ISharePointProjectItemTypeProvider))]
[SharePointProjectItemType("Contoso.ExampleProjectItemType")]
[SharePointProjectItemIcon("ExampleProjectItemType.ProjectItemIcon.ico")]
internal class ExampleProjectItemType : ISharePointProjectItemTypeProvider
{
public void InitializeType(ISharePointProjectItemTypeDefinition projectItemTypeDefinition)
{
projectItemTypeDefinition.Name = "ExampleProjectItemType";
projectItemTypeDefinition.SupportedDeploymentScopes =
SupportedDeploymentScopes.Site | SupportedDeploymentScopes.Web;
projectItemTypeDefinition.SupportedTrustLevels = SupportedTrustLevels.All;
projectItemTypeDefinition.ProjectItemAdded += projectItemTypeDefinition_ProjectItemAdded;
}
void projectItemTypeDefinition_ProjectItemAdded(object sender, SharePointProjectItemEventArgs e)
{
string message = String.Format("An example project item named {0} was added to the {1} project.",
e.ProjectItem.Name, e.ProjectItem.Project.Name);
e.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 des Projektelements
Um Ihr Projektelement anderen Entwicklern zur Verfügung zu stellen, können Sie eine Projektvorlage oder eine Projektelementvorlage erstellen.Weitere Informationen finden Sie unter Erstellen von Elementvorlagen und Projektvorlagen für SharePoint-Projektelemente.
Erstellen Sie zum Bereitstellen des Projektelements ein Visual Studio-Erweiterungspaket (VSIX) für die Assembly, die Vorlage und alle weiteren Dateien, die Sie mit dem Projektelement verteilen möchten.Weitere Informationen finden Sie unter Bereitstellen von Erweiterungen für die SharePoint-Tools in Visual Studio.
Siehe auch
Aufgaben
Konzepte
Definieren von benutzerdefinierten SharePoint-Projektelementtypen
Erstellen von Elementvorlagen und Projektvorlagen für SharePoint-Projektelemente