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 prévues pour s'exécuter lorsque l'un des événements suivants ayant trait aux fonctionnalités se produit dans SharePoint :
Installation d'une fonctionnalité.
Activation d'une fonctionnalité.
Désactivation d'une fonctionnalité.
Suppression d'une fonctionnalité.
Cette procédure pas à pas montre comment ajouter un récepteur d'événements à une fonctionnalité dans un projet SharePoint.Elle prend en compte 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 du projet SharePoint pour ajouter une annonce à la liste Annonces.
[!REMARQUE]
Il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains des éléments d'interface utilisateur de Visual Studio 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 Paramètres Visual Studio.
Composants requis
Pour exécuter cette procédure pas à pas, vous devez disposer des composants suivants :
Éditions de Microsoft Windows et SharePoint prises en charge.Pour plus d'informations, consultez Configuration requise pour développer des solutions SharePoint.
Visual Studio.
Création d'un projet pour un récepteur d'événements de fonctionnalité
Commencez par créer un projet destiné à contenir le récepteur d'événements de fonctionnalité.
Pour créer un projet avec un récepteur d'événements de fonctionnalité
Dans la barre de menus, sélectionnez Fichier, Nouveau, Projet pour afficher la boîte de dialogue Nouveau projet .
Développez le nœud SharePoint sous Visual C# ou Visual Basic, puis sélectionnez le nœud 2010 .
Dans le volet Modèles , choisissez le modèle Projet SharePoint 2010 .
Vous utilisez ce type de projet pour les récepteurs d'événements de fonctionnalité parce qu'elles n'ont aucun modèle de projet.
Dans la zone Nom , entrez FeatureEvtTest, puis choisissez le bouton OK pour afficher Assistant Personnalisation de SharePoint.
Dans la page Spécifier le site et le niveau de sécurité pour le débogage, entrez l'URL du site de serveur SharePoint auquel vous souhaitez ajouter le nouvel élément de champ personnalisé ou utilisez l'emplacement par défaut (http://<system name).
Dans la section Quel est le niveau de confiance de cette solution SharePoint ? , sélectionnez la case d'option Déployer en tant que solution de batterie .
Pour plus d'informations sur les différences entre les solutions bac à sable (sandbox) et les solutions de batterie, consultez Considérations sur les solutions bac à sable (sandbox).
Choisissez le bouton Terminer , puis notez qu'une fonctionnalité nommée Feature1 apparaît sous le nœud Fonctionnalités .
Ajout d'un récepteur d'événements à la fonctionnalité
Il convient maintenant d'ajouter un récepteur d'événements à la fonctionnalité et de prévoir le code à exécuter en cas de désactivation de la fonctionnalité.
Pour ajouter un récepteur d'événements à la fonctionnalité
Ouvrez le menu contextuel du nœud fonctionnalités, puis choisissez Ajouter une fonctionnalité pour créer une fonctionnalité.
Sous le nœud Fonctionnalités , ouvrez le menu contextuel pour Feature1, puis choisissez Ajouter un récepteur d'événements pour ajouter un récepteur d'événements à la fonctionnalité.
Cela permet d'insérer un fichier de code sous Feature1.Dans le cas présent, il est nommé Feature1.EventReceiver.cs ou Feature1.EventReceiver.vb, selon le langage de développement de votre projet.
Si votre projet est écrit dans Visual C#, ajoutez le code suivant en haut du récepteur d'événements s'il y a lieu :
using System;
La classe de récepteur d'événements contient plusieurs méthodes commentées - qui agissent comme des événements.Remplacez la méthode FeatureDeactivating par la méthode suivante :
Public Overrides Sub FeatureDeactivating(ByVal properties As SPFeatureReceiverProperties) Try ' Get reference to SharePoint site. Dim site As SPSite = New SPSite("https://localhost") Dim web As SPWeb = site.OpenWeb("/") ' Get reference to Announcements list. Dim announcementsList As SPList = web.Lists("Announcements") ' Add new announcement to Announcements list. Dim oListItem As SPListItem = announcementsList.Items.Add oListItem("Title") = ("Deactivated Feature: " + properties.Definition.DisplayName) oListItem("Body") = (properties.Definition.DisplayName + (" was deactivated on: " + DateTime.Now.ToString)) oListItem.Update() Catch e As Exception Console.WriteLine(("Error: " + e.ToString)) End Try End Sub
public override void FeatureDeactivating(SPFeatureReceiverProperties properties) { try { // Get reference to SharePoint site. SPSite site = new SPSite("https://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()); } }
Test du récepteur d'événements de la fonctionnalité
Veuillez à présent désactiver la fonctionnalité pour tester si la méthode FeatureDeactivating produit une annonce dans la liste des annonces SharePoint.
Pour tester le récepteur d'événements de la fonctionnalité
Affectez à la propriété Configuration de déploiement active du projet à Aucune activation.
Cela empêche l'activation de la fonctionnalité dans SharePoint et vous permet de déboguer les récepteurs d'événements de la fonctionnalité.Pour plus d'informations, consultez Débogage de solutions SharePoint.
Choisissez la clé F5 pour exécuter le projet et le déployer sur SharePoint.
En haut de la page Web SharePoint, ouvrez le menu Actions du site , puis choisissez Paramètres du site.
Dans la section Actions du site de la page Paramètres du site , cliquez sur le lien Gérer les fonctionnalités du site .
Dans la page Fonctionnalités , choisissez le bouton Activer en regard de la fonctionnalité FeatureEvtTest Feature1 .
Dans la page Fonctionnalités , choisissez le bouton Désactiver en regard de la fonctionnalité FeatureEvtTest Feature1 , puis cliquez sur le lien de confirmation Désactiver la fonctionnalité pour mettre la fonctionnalité.
Choisissez le bouton Accueil .
Notez la présence d'une annonce dans la liste Annonces une fois la fonctionnalité désactivée.
Voir aussi
Tâches
Comment : créer un récepteur d'événements