Partager via


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

  1. Créez un projet Bibliothèque de classes.

  2. Ajoutez des références aux assemblys suivants :

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

  3. Définissez une classe qui implémente l'interface ISharePointProjectItemTypeProvider.

  4. 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.

  5. 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

Procédure pas à pas : création d'un élément de projet d'action personnalisé avec un modèle d'élément, première partie

Procédure pas à pas : création d'un élément de projet de colonnes de sites avec un modèle de projet, première partie

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é

Comment : ajouter un élément de menu contextuel à un type d'élément de projet SharePoint personnalisé