Partager via


Procédure pas à pas : ajout de récepteurs d'événements de fonctionnalité

Les récepteurs d'événements de fonctionnalité sont des méthodes qui s'exécutent lorsque l'un des événements suivants se produit dans SharePoint :

  • Une fonctionnalité est installée.

  • Une fonctionnalité est activée.

  • Une fonctionnalité est désactivée.

  • Une fonctionnalité est supprimée.

Cette procédure pas à pas montre comment ajouter un récepteur d'événements à une fonctionnalité dans un projet SharePoint. Elle illustre les tâches suivantes :

  • Création d’un projet vide avec un récepteur d’événements de fonctionnalité.

  • Gestion de la méthode FeatureDeactivating.

  • Utilisation du modèle d'objet de projet SharePoint pour ajouter une annonce à la liste Annonces.

    Notes

    Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d’informations, consultez Personnaliser l’IDE.

Prérequis

Vous devez disposer des éléments suivants pour exécuter cette procédure pas à pas :

  • Éditions prises en charge de Microsoft Windows et SharePoint.

  • Visual Studio.

Créer un projet de récepteur d’événements de fonctionnalité

Tout d'abord, créez un projet contenant le récepteur d'événements.

Pour créer un projet avec un récepteur d’événements de fonctionnalité

  1. Dans la barre de menus, choisissez Fichier>Nouveau>Projet pour afficher la boîte de dialogue Nouveau projet.

  2. Développez le nœud SharePoint sous Visual C# ou Visual Basic, puis sélectionnez le nœud 2010.

  3. Dans le volet Modèles, sélectionnez le modèle Projet SharePoint 2010.

    Vous utilisez ce type de projet pour les récepteurs d’événements de fonctionnalité, car ils n’ont aucun modèle de projet.

  4. Dans la zone Nom, entrez FeatureEvtTest, puis choisissez le bouton OK pour afficher l’Assistant Personnalisation SharePoint.

  5. Sur la page Spécifier le site et le niveau de sécurité pour le débogage, entrez l’URL du serveur SharePoint auquel vous souhaitez ajouter le nouvel élément de champ personnalisé, ou utilisez l’emplacement par défaut (http://<nom du système>/).

  6. Dans la section Quel est le niveau d’approbation de cette solution SharePoint ?, choisissez le bouton d’option Déployer en tant que solution de batterie de serveurs.

    Pour plus d'informations sur les solutions bac à sable (sandbox) par rapport aux solutions de batterie, consultez Considérations sur les solutions bac à sable (sandbox).

  7. Choisissez le bouton Terminer, puis notez qu’une fonctionnalité nommée Feature1 apparaît sous le nœud Fonctionnalités.

Ajouter un récepteur d’événements à la fonctionnalité

Ajoutez ensuite un récepteur d’événements à la fonctionnalité, puis un code qui s’exécute lorsque la fonctionnalité est désactivée.

Pour ajouter un récepteur d’événements à la fonctionnalité

  1. Ouvrez le menu contextuel du nœud Fonctionnalités, puis choisissez Ajouter une fonctionnalité pour créer une fonctionnalité.

  2. Sous le nœud Fonctionnalités, ouvrez le menu contextuel de Feature1, puis choisissez Ajouter un récepteur d’événements pour ajouter un récepteur d’événements à la fonctionnalité.

    Un fichier de code est ajouté sous Feature1. Dans ce cas, il est nommé Feature1.EventReceiver.cs ou Feature1.EventReceiver.vb, selon le langage de développement de votre projet.

  3. Si votre projet est écrit en Visual C#, ajoutez le code suivant en haut du récepteur d’événements, s’il n’existe pas déjà :

    using System;
    
  4. La classe de récepteur d’événements contient plusieurs méthodes commentées qui agissent en tant qu’événements. Remplacez la méthode FeatureDeactivating par ce qui suit :

    public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
    {
        try
        {
            // Get reference to SharePoint site.
            SPSite site = new SPSite("http://localhost");
            SPWeb web = site.OpenWeb("/");
            // Get reference to Announcements list.
            SPList announcementsList = web.Lists["Announcements"];
    
            // Add new announcement to Announcements list.
            SPListItem oListItem = announcementsList.Items.Add();
            oListItem["Title"] = "Deactivated Feature: " + properties.Definition.DisplayName;
            oListItem["Body"] = properties.Definition.DisplayName + " was deactivated on: " + DateTime.Now.ToString();
            oListItem.Update();
    
        }
    
        catch (Exception e)
        {
            Console.WriteLine("Error: " + e.ToString());
        }
        
    }
    

Tester le récepteur d’événements de fonctionnalité

Ensuite, désactivez la fonctionnalité pour tester si la méthode FeatureDeactivating génère une annonce dans la liste Annonces SharePoint.

Pour tester le récepteur d’événements de fonctionnalité

  1. Définissez la valeur de la propriété Configuration de déploiement active du projet sur Aucune activation.

    La définition de cette propriété empêche l’activation de la fonctionnalité dans SharePoint et vous permet de déboguer des récepteurs d’événements de fonctionnalité. Pour plus d'informations, consultez Solutions de débogage SharePoint.

  2. Choisissez la clé F5 pour exécuter le projet et le déployer sur SharePoint.

  3. En haut de la page web SharePoint, ouvrez le menu Actions du site, puis choisissez Paramètres du site.

  4. Dans la section Actions du site de la page Paramètres du site, choisissez le lien Gérer les fonctionnalités du site.

  5. Dans la page Fonctionnalités, choisissez le bouton Activer en regard de la fonctionnalité FeatureEvtTest Feature1.

  6. Dans la page Fonctionnalités, choisissez le bouton Désactiver en regard de la fonctionnalité FeatureEvtTest Feature1, puis choisissez le lien de confirmation Désactiver cette fonctionnalité pour désactiver la fonctionnalité.

  7. Choisissez le bouton Accueil.

    Notez qu’une annonce s’affiche dans la liste Annonces après la désactivation de la fonctionnalité.