Comment : créer une extension d'élément de projet SharePoint
Créez une extension d'élément de projet si vous avez l'intention d'ajouter des fonctionnalités à un élément de projet SharePoint déjà installé dans Visual Studio.Pour plus d'informations, consultez Extension d'éléments de projet SharePoint.
Pour créer une extension d'élément de projet
Créez un projet Bibliothèque de classes.
Ajoutez des références aux assemblys suivants :
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Définissez une classe qui implémente l'interface ISharePointProjectItemTypeExtension.
Ajouter les attributs suivants à la classe :
System.ComponentModel.Composition.ExportAttribute.Cet attribut permet à Visual Studio de découvrir et de charger votre implémentation ISharePointProjectItemTypeExtension.Communiquez le type ISharePointProjectItemTypeExtension au constructeur d'attribut.
SharePointProjectItemTypeAttribute.Dans une extension d'élément de projet, cet attribut identifie l'élément de projet que vous souhaitez étendre.Passez l'ID de l'élément de projet au constructeur d'attribut.Pour obtenir la liste des ID des éléments de projet qui sont inclus dans Visual Studio, consultez Extension d'éléments de projet SharePoint.
Dans votre implémentation de la méthode Initialize, utilisez les membres du paramètre projectItemType pour définir le comportement de votre extension.Ce paramètre est un objet ISharePointProjectItemType qui fournit l'accès aux événements définis dans les interfaces ISharePointProjectItemEvents et ISharePointProjectItemFileEvents.Pour accéder à une instance spécifique du type d'élément de projet que vous étendez, gérez les événements ISharePointProjectItemEvents tels que ProjectItemAdded et ProjectItemInitialized.
Exemple
L'exemple de code suivant montre comment créer une extension simple pour l'élément de projet Récepteur d'événements.Chaque fois que l'utilisateur ajoute un élément de projet Récepteur d'événements à un projet SharePoint, cette extension écrit un message dans les fenêtres Sortie et Liste d'erreurs.
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);
}
}
}
Cet exemple utilise le service de projet SharePoint pour écrire le message dans les fenêtres Sortie et Liste d'erreurs.Pour plus d'informations, consultez Utilisation du service de projet SharePoint.
Compilation du code
Cet exemple nécessite des références aux assemblys suivants :
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Déploiement de l'extension
Pour déployer l'extension, créez un package d'extension Visual Studio (VSIX) pour l'assembly et tous les autres fichiers que vous voulez distribuer avec l'extension.Pour plus d'informations, consultez Déploiement d'extensions pour les outils SharePoint dans Visual Studio.
Voir aussi
Tâches
Procédure pas à pas : extension d'un type d'élément de projet SharePoint