SPEventReceiverDefinition - Classe

Classe de base abstraite qui définit des propriétés générales d'un récepteur d'événements pour les éléments de liste, listes, sites Web et des flux de travail.

Hiérarchie d’héritage

System.Object
  Microsoft.SharePoint.Administration.SPAutoSerializingObject
    Microsoft.SharePoint.SPEventReceiverDefinition

Espace de noms :  Microsoft.SharePoint
Assembly :  Microsoft.SharePoint (dans Microsoft.SharePoint.dll)

Syntaxe

'Déclaration
Public NotInheritable Class SPEventReceiverDefinition _
    Inherits SPAutoSerializingObject
'Utilisation
Dim instance As SPEventReceiverDefinition
public sealed class SPEventReceiverDefinition : SPAutoSerializingObject

Remarques

Un récepteur d'événements est géré code qui réagit aux événements SharePoint Foundation chaque fois que spécifique de déclenchement d'actions se produisent. Déclenchement de SharePoint Foundation objets incluent des éléments de liste, des listes ou des bibliothèques de documents. Actions de déclenchement incluent des activités telles que l'ajout, le déplacement ou la conclusion de la transaction. Les objets qui s'attendent à recevoir des événements sont des hôtes d'événements, qui sont des objets tels que des collections de sites, des sites, des listes, des workflows ou des fonctionnalités. SharePoint Foundation événements sont divisées en deux catégories : événements Before et After . Dans SharePoint Foundation, Before événements sont nommés «... ing » et After événements sont nommés «... ed ». Before événements sont déclenchés en réponse à une action de l'utilisateur qui se produit avant la SharePoint Foundation réécrit les données vers la base de données de contenu. Ils permettent une mise en œuvre effectuer des vérifications de sécurité et une validation personnalisée, afin qu'ils se produisent très tôt dans le cycle de vie du traitement de la requête pour prendre en charge l'annulation de l'action de l'utilisateur. Tous les récepteurs d'événements Before sont synchrones, et qu'ils bloquent le flux d'exécution de thread de travail jusqu'à ce que le Gestionnaire d'événements est terminée. événements de After ont des gestionnaires d'événements qui s'exécutent une fois SharePoint Foundation valide l'action de l'utilisateur à inscrire des données sur la base de données de contenu. After événements ne gèrent pas l'annulation de l'action de l'utilisateur. Il existe deux types de traitement des événements qui peuvent se produire lorsqu'un événement After est déclenché : synchrone et asynchrone. Traitement synchrone offre la possibilité d'exécuter l'événement dans le même thread avant d'envoyer la réponse au navigateur Web. Récepteurs d'événements asynchrones sont traités par un thread séparé, afin que le traitement ne bloque pas le flux d'exécution du code. Le thread de travail distinct pour le traitement asynchrone est démarré par les méthodes qui se trouvent dans les classes de la classe SPEventReceiverDefinition .

Utilisez la propriété EventReceivers de la classe SPContentType, SPFile, SPList, SPSite, SPWebou SPWorkflow pour obtenir la collection de récepteurs d'événements inscrits pour l'objet donné Microsoft SharePoint Foundation . Une fois que vous avez une référence à la collection de récepteur d'événement (de type SPEventReceiverDefinitionCollection), vous pouvez l'utiliser pour ajouter une nouvelle définition de récepteur d'événements ou de récupérer une existante. Utilisez la méthode Add() pour créer un nouvel objet de SPEventReceiverDefinition d'événement. Différentes propriétés qui composent la définition de la valeur, puis appeler la méthode Update() pour enregistrer la définition de récepteur d'événements.

Un indexeur permet de renvoyer une définition de récepteur d'événement unique de la collection. Par exemple, si la collection est assignée à une variable nommée collEventReceiverDefinitions, utilisez collEventReceiverDefinitions[index] dans C# ou collEventReceiverDefinitions(index) dans Visual Basic .NET, où index est le numéro d'index de la définition de la collection ou le GUID de la définition.

Exemples

L'exemple suivant utilise des membres de la classe SPEventReceiverDefinition pour inscrire un récepteur d'événements synchrone ItemAdding pour la liste de Contacts d'un site Web spécifié.

string listName = "Contacts";
string siteURL = "https://Server/Site";
string receiverName = "Contacts Event Receiver";
int sequenceNumber = 2001;
string assemblyFullName = "Assembly_Name, Version=1.0.1777.23493, Culture=neutral, PublicKeyToken=94de0004b6e3fcc5";
string assemblyClassName = "Assembly_Name.Class_Name";
string receiverData = "Data";

SPList list = new SPSite(siteURL).OpenWeb().Lists[listName];
SPEventReceiverDefinitionCollection eventReceivers = list.EventReceivers;

using(SPSite site = new SPSite(siteURL))
{ 
   using (SPWeb web = site.OpenWeb()) 
   {
      SPList list = new SPSite(siteURL).OpenWeb().Lists[listName]; 
      SPEventReceiverDefinitionCollection eventReceivers =
         list.EventReceivers;

      SPEventReceiverDefinition eventReceiver = eventReceivers.Add();
      eventReceiver.Name = receiverName;
      eventReceiver.Synchronization =
         SPEventReceiverSynchronization.Synchronous; 
      eventReceiver.Type = SPEventReceiverType.ItemAdded;
      eventReceiver.SequenceNumber = sequenceNumber; 
      eventReceiver.Assembly = assemblyFullName ;
      eventReceiver.Class = assemblyClassName ;
      eventReceiver.Data = receiverData ;

      eventReceiver.Update();
   }
}
Dim listName As String = "Contacts"
Dim siteURL As String = "https://Server/Site"
Dim receiverName As String = "Contacts Event Receiver"
Dim sequenceNumber As Integer = 2001
Dim assemblyFullName As String = "Assembly_Name, Version=1.0.1777.23493, Culture=neutral, PublicKeyToken=94de0004b6e3fcc5"
Dim assemblyClassName As String = "Assembly_Name.Class_Name"
Dim receiverData As String = "Data"

Dim list As SPList = New SPSite(siteURL).OpenWeb().Lists(listName)
Dim eventReceivers As SPEventReceiverDefinitionCollection = list.EventReceivers

Using site As New SPSite(siteURL)
   Using web As SPWeb = site.OpenWeb()
     Dim list As SPList = New SPSite(siteURL).OpenWeb().Lists(listName)
     Dim eventReceivers As SPEventReceiverDefinitionCollection = list.EventReceivers

     Dim eventReceiver As SPEventReceiverDefinition = eventReceivers.Add()
     eventReceiver.Name = receiverName
     eventReceiver.Synchronization = SPEventReceiverSynchronization.Synchronous
     eventReceiver.Type = SPEventReceiverType.ItemAdded
     eventReceiver.SequenceNumber = sequenceNumber
     eventReceiver.Assembly = assemblyFullName
     eventReceiver.Class = assemblyClassName
     eventReceiver.Data = receiverData

     eventReceiver.Update()
   End Using
End Using

Cohérence de thread

Tous les membres statique (Partagé dans Visual Basic)s publics de ce type sont thread-safe. Cela n’est pas garanti pour les membres d’instance.

Voir aussi

Référence

SPEventReceiverDefinition - Membres

Microsoft.SharePoint - Espace de noms

SPEventType