Comment : définir un type d'élément de projet SharePointHow to: Define a SharePoint Project Item Type

Définir un type d’élément de projet lorsque vous souhaitez créer un élément de projet SharePoint personnalisé.Define a project item type when you want to create a custom SharePoint project item. Pour plus d’informations, consultez Types d’éléments de projet de définition personnalisé SharePoint.For more information, see Defining Custom SharePoint Project Item Types.

Pour définir un type d’élément de projetTo define a project item type

  1. Créez un projet de bibliothèque de classes.Create a class library project.

  2. Ajoutez des références aux assemblys suivants :Add references to the following assemblies:

    • Microsoft.VisualStudio.SharePointMicrosoft.VisualStudio.SharePoint

    • System.ComponentModel.CompositionSystem.ComponentModel.Composition

  3. Définissez une classe qui implémente l'interface ISharePointProjectItemTypeProvider.Create a class that implements the ISharePointProjectItemTypeProvider interface.

  4. Ajoutez les attributs suivants à la classe :Add the following attributes to the class:

    • ExportAttribute.ExportAttribute. Cet attribut permet à Visual Studio de découvrir et de charger votre ISharePointProjectItemTypeProvider implémentation.This attribute enables Visual Studio to discover and load your ISharePointProjectItemTypeProvider implementation. Passez le ISharePointProjectItemTypeProvider type au constructeur d’attribut.Pass the ISharePointProjectItemTypeProvider type to the attribute constructor.

    • SharePointProjectItemTypeAttribute.SharePointProjectItemTypeAttribute. Dans une définition de type élément de projet, cet attribut spécifie l’identificateur de chaîne pour le nouvel élément de projet.In a project item type definition, this attribute specifies the string identifier for the new project item. Nous vous recommandons d’utiliser le format nom de la société. nom de la fonctionnalité pour s’assurer que tous les éléments de projet ont un nom unique.We recommend that you use the format company name.feature name to help make sure that all project items have a unique name.

    • SharePointProjectItemIconAttribute.SharePointProjectItemIconAttribute. Cet attribut spécifie l’icône à afficher pour cet élément de projet dans l’Explorateur de solutions.This attribute specifies the icon to display for this project item in Solution Explorer. Cet attribut est facultatif ; Si vous n’appliquez pas à votre classe, Visual Studio affiche une icône par défaut pour votre élément de projet.This attribute is optional; if you do not apply it to your class, Visual Studio displays a default icon for your project item. Si vous définissez cet attribut, passez le nom qualifié complet d’une icône ou d’une bitmap qui est incorporée dans l’assembly.If you set this attribute, pass the fully qualified name of an icon or bitmap that is embedded in your assembly.

  5. Dans votre implémentation de la InitializeType (méthode), utilisez les membres de la projectItemTypeDefinition paramètre pour définir le comportement du type d’élément de projet.In your implementation of the InitializeType method, use members of the projectItemTypeDefinition parameter to define the behavior of the project item type. Ce paramètre est un ISharePointProjectItemTypeDefinition objet qui fournit l’accès aux événements définis dans le ISharePointProjectItemEvents et ISharePointProjectItemFileEvents interfaces.This parameter is an ISharePointProjectItemTypeDefinition object that provides access to the events defined in the ISharePointProjectItemEvents and ISharePointProjectItemFileEvents interfaces. Pour accéder à une instance spécifique de votre type d’élément de projet, gérer ISharePointProjectItemEvents événements tels que ProjectItemAdded et ProjectItemInitialized.To access a specific instance of your project item type, handle ISharePointProjectItemEvents events such as ProjectItemAdded and ProjectItemInitialized.

ExempleExample

L’exemple de code suivant montre comment définir un type d’élément de projet simple.The following code example demonstrates how to define a simple project item type. Ce type d’élément de projet écrit un message à la sortie fenêtre et liste d’erreurs fenêtre lorsqu’un utilisateur ajoute un élément de projet de ce type à un projet.This project item type writes a message to the Output window and Error List window when a user adds a project item of this type to a project.

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 à la sortie fenêtre et liste d’erreurs fenêtre.This example uses the SharePoint project service to write the message to the Output window and Error List window. Pour plus d’informations, consultez à l’aide du Service de projet SharePoint.For more information, see Using the SharePoint Project Service.

Compilation du codeCompiling the Code

Cet exemple nécessite des références aux assemblys suivants :This example requires references to the following assemblies:

  • Microsoft.VisualStudio.SharePointMicrosoft.VisualStudio.SharePoint

  • System.ComponentModel.CompositionSystem.ComponentModel.Composition

Déploiement de l’élément de projetDeploying the Project Item

Pour activer les autres développeurs d’utiliser votre élément de projet, créer un modèle de projet ou un modèle d’élément de projet.To enable other developers to use your project item, create a project template or a project item template. Pour plus d’informations, consultez création de modèles d’élément et les modèles de projet pour les éléments de projet SharePoint.For more information, see Creating Item Templates and Project Templates for SharePoint Project Items.

Pour déployer l’élément de projet, créez un Visual StudioVisual Studio package d’extension (VSIX) pour l’assembly, le modèle et tous les autres fichiers que vous voulez distribuer avec l’élément de projet.To deploy the project item, create a Visual StudioVisual Studio extension (VSIX) package for the assembly, the template, and any other files that you want to distribute with the project item. Pour plus d’informations, consultez déploiement d’Extensions pour les outils SharePoint dans Visual Studio.For more information, see Deploying Extensions for the SharePoint Tools in Visual Studio.

Voir aussiSee Also

Définition des Types d’éléments de projet SharePoint personnalisé Defining Custom SharePoint Project Item Types
Création de modèles d’élément et les modèles de projet pour les éléments de projet SharePoint Creating Item Templates and Project Templates for SharePoint Project Items
Procédure pas à pas : Création d’un élément de projet d’Action personnalisé avec un modèle d’élément, partie 1 Walkthrough: Creating a Custom Action Project Item with an Item Template, Part 1
Procédure pas à pas : Création d’un élément de projet de colonne de Site avec un modèle de projet, partie 1 Walkthrough: Creating a Site Column Project Item with a Project Template, Part 1
Comment : ajouter une propriété à un Type d’élément de projet SharePoint personnalisé How to: Add a Property to a Custom SharePoint Project Item Type
Guide pratique pour ajouter un élément de menu contextuel à un type d’élément de projet SharePoint personnaliséHow to: Add a Shortcut Menu Item to a Custom SharePoint Project Item Type