SPEventReceiverDefinition-Klasse

Abstrakte Basisklasse, die allgemeine Eigenschaften eines Ereignisempfängers für Listenelemente, Listen, Websites und Workflows definiert.

Vererbungshierarchie

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

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaration
Public NotInheritable Class SPEventReceiverDefinition _
    Inherits SPAutoSerializingObject
'Usage
Dim instance As SPEventReceiverDefinition
public sealed class SPEventReceiverDefinition : SPAutoSerializingObject

Hinweise

Ein Ereignisempfänger wird verwaltet Code, der auf SharePoint Foundation Ereignisse, wenn bestimmte Aktionen auslösen reagiert auftreten. Auslösen der SharePoint Foundation gehören Objekte, Listenelemente, Listen oder Dokumentbibliotheken. Auslösende Aktionen umfassen die folgenden Aktivitäten wie hinzufügen, verschieben oder Auschecken. Objekte, die Ereignisse empfangen erwarten sind Ereignishosts, die Objekte wie Websitesammlungen, Websites, Listen, Workflows oder Features sind. SharePoint Foundation Ereignisse werden in zwei Kategorien unterteilt: Before und After Ereignisse. In SharePoint Foundation, Before Ereignisse heißen "..-Verknüpfung" und After Ereignisse heißen ".. Ed". Before Ereignisse ausgelöst als Reaktion auf eine Benutzeraktion, die tritt auf, bevor der SharePoint Foundation Daten zurück in die Inhaltsdatenbank geschrieben werden. Sie ermöglichen eine Implementierung Sicherheitsüberprüfungen und benutzerdefinierte Überprüfung ausführen, damit auftreten, einem frühen Zeitpunkt im Lebenszyklus Anforderungsverarbeitung Abbruch des die Aktion des Benutzers zu unterstützen. Alle Before -Ereignisempfänger sind synchron, und sie blockieren den Ablauf der Ausführung des Auftrags Thread erst nach des Ereignishandlers Abschluss. After Ereignisse haben Ereignishandler, die ausgeführt werden, nachdem SharePoint Foundation die Aktion des Benutzers werden durch das Zurückschreiben von Daten in die Inhaltsdatenbank übernommen. After Ereignisse unterstützt Abbruch des die Aktion des Benutzers nicht. Es gibt zwei Arten von Ereignisverarbeitung, die auftreten können, wenn ein After -Ereignis ausgelöst wird: synchrone und asynchrone. Synchronen Verarbeitung bietet die Möglichkeit, der das Ereignis im selben Thread ausgeführt werden, bevor Webantwort zurück an den Browser senden. Asynchrone Ereignisempfänger werden von einem getrennten Thread, verarbeitet, damit Verarbeitung nicht, den Ablauf der Ausführung von Code gesperrt wird. Getrennte Threads für die asynchrone Verarbeitung wird von Methoden gestartet, die sich in Klassen als die SPEventReceiverDefinition -Klasse befinden.

Verwenden Sie die EventReceivers -Eigenschaft der SPContentType, SPFile, SPList, SPSite, SPWeboder SPWorkflow -Klasse, um die Auflistung von Ereignisempfängern registriert für das angegebene Microsoft SharePoint Foundation -Objekt abzurufen. Nachdem Sie einen Verweis auf die Empfänger Ereignisauflistung (der Typ SPEventReceiverDefinitionCollection) verfügen, können Sie es zum Hinzufügen einer neuen ereignisempfängerdefinition oder eine vorhandene abrufen. Verwenden Sie die Add() -Methode, um ein neues Ereignis SPEventReceiverDefinition -Objekt zu erstellen. Klicken Sie dann legen Sie die anderen Eigenschaften, die die Definition bilden, und rufen Sie die Update() -Methode, um die ereignisempfängerdefinition zu speichern.

Verwenden Sie eine Indexerstellung, um ein einzelnes ereignisempfängerdefinition aus der Auflistung zurückzugeben. Verwenden Sie beispielsweise, wenn die Auflistung einer Variablen mit dem Namen collEventReceiverDefinitionszugewiesen ist, collEventReceiverDefinitions[index] in c# oder collEventReceiverDefinitions(index) in Visual Basic .NET, wobei index entweder die Indexnummer der Definition in der Auflistung oder die GUID der Definition der ist.

Beispiele

Das folgende Beispiel verwendet die Membern der SPEventReceiverDefinition -Klasse zum Registrieren eines synchronen ItemAdding Ereignisempfängers für die Kontaktliste einer angegebenen Website.

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

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Die Threadsicherheit von Instanzmembern ist nicht gewährleistet.

Siehe auch

Referenz

SPEventReceiverDefinition-Member

Microsoft.SharePoint-Namespace

SPEventType