Comment : définir un type d'élément de projet SharePoint
Définissez un type d'élément de projet si vous avez l'intention de créer un nouvel élément de projet SharePoint personnalisé.Pour plus d’informations, consultez Définition de types d'éléments de projet SharePoint personnalisés.
Pour définir un type 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 ISharePointProjectItemTypeProvider.
Ajouter les attributs suivants à la classe :
System.ComponentModel.Composition.ExportAttribute.Cet attribut permet à Visual Studio de découvrir et de charger votre implémentation ISharePointProjectItemTypeProvider.Communiquez le type ISharePointProjectItemTypeProvider au constructeur d'attribut.
SharePointProjectItemTypeAttribute.Dans une définition de type d'élément de projet, cet attribut spécifie l'identificateur de chaîne pour le nouvel élément de projet.Nous vous recommandons de respecter le format NomSociété.NomFonctionnalité pour vous assurer d'attribuer des noms uniques et cohérents à tous les éléments de projet.
SharePointProjectItemIconAttribute.Cet attribut désigne l'icône utilisée pour représenter cet élément de projet dans l'Explorateur de solutions.Cet attribut est facultatif ; si vous ne l'appliquez pas à votre classe, Visual Studio affiche une icône par défaut pour votre élément de projet.Si vous définissez cet attribut, communiquez le nom qualifié complet d'une icône ou d'un fichier bitmap incorporé dans votre assembly.
Dans votre implémentation de la méthode InitializeType, utilisez les membres du paramètre projectItemTypeDefinition pour définir le comportement du type d'élément de projet.Ce paramètre est un objet ISharePointProjectItemTypeDefinition qui fournit l'accès aux événements définis dans les interfaces ISharePointProjectItemEvents et ISharePointProjectItemFileEvents.Pour accéder à une instance spécifique de votre type d'élément de projet, gérez les événements ISharePointProjectItemEvents tels que ProjectItemAdded et ProjectItemInitialized.
Exemple
L'exemple de code suivant montre comment définir un type d'élément de projet simple.Ce type d'élément de projet écrit un message dans les fenêtres Sortie et Liste d'erreurs lorsqu'un utilisateur ajoute un élément de projet de ce type à un projet.
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);
}
}
}
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'élément de projet
Pour donner à d'autres développeurs la possibilité d'utiliser votre élément de projet, créez un modèle de projet ou un modèle d'élément de projet.Pour plus d’informations, consultez Création de modèles d'élément et de modèles de projet pour les éléments de projet SharePoint.
Pour déployer l'élément de projet, créez un package d'extension Visual Studio (VSIX) pour l'assembly, le modèle et tous les autres fichiers que vous voulez distribuer avec l'élément de projet.Pour plus d’informations, consultez Déploiement d'extensions pour les outils SharePoint dans Visual Studio.
Voir aussi
Tâches
Concepts
Définition de types d'éléments de projet SharePoint personnalisés
Création de modèles d'élément et de modèles de projet pour les éléments de projet SharePoint
Comment : ajouter une propriété à un type d'élément de projet SharePoint personnalisé