Freigeben über


Einführung in Ereignisse in SharePoint Foundation

Letzte Änderung: Mittwoch, 7. April 2010

Gilt für: SharePoint Foundation 2010

Das Microsoft SharePoint Foundation-Ereignismodell beruht auf verwalteten Komponenten, die Ereignisempfänger genannt wurden und auf SharePoint Foundation-Objekte reagieren, wenn bestimmte auslösende Ereignisse stattfinden. Sie erstellen einen Ereignisempfänger mittels Vererbung von einer der Basisklassen der SharePoint-Ereignisempfänger. Nachdem Sie den Ereignisempfänger erstellt haben, implementieren Sie Ereignishandler durch Überschreiben von Methoden für die Ereignisempfängerklasse. Die Klasse wird anschließend in eine Assembly kompiliert und im globalen Assemblycache (GAC) gespeichert. Danach binden Sie Ihre Ereignishandler an einen Ereignishost.

Ein Ereignisempfänger ist verwalteter Code, der auf SharePoint Foundation-Ereignisse reagiert, wenn bestimmte auslösende Aktionen für SharePoint-Objekte auftreten. Zu auslösenden Aktionen gehören Aktivitäten wie z. B. Hinzufügen, Verschieben, Einchecken, Auschecken usw. Objekte, die auf den Empfang von Ereignissen warten, heißen Ereignishosts, zu denen Objekte wie Websitesammlungen, Websites, Listen, Workflows oder Features zählen.

Nahezu alle SharePoint-Objekte können Ereignisse auslösen, die von einer oder mehreren der Ereignisklassen abgefangen werden können. Bei der Kategorisierung eines SharePoint-Ereignisses ist es sinnvoll, zunächst das Objekt zu berücksichtigen, für welches das Ereignis ausgelöst wird (d. h. den Ereignishost), z. B. für eine Websitesammlung, Liste oder ein Listenelement, und ob das Ereignis synchron oder asynchron ist. Eine Liste mit SharePoint Foundation-Objekten, die abfangbare Ereignisse auslösen, finden Sie unter Katalog mit SharePoint Foundation-Ereignissen.

SharePoint Foundation-Ereignismodell

Das SharePoint Foundation-Ereignismodell basiert auf einem allgemeinen Satz von Komponenten und Konzepten, über die die folgenden Abschnitte einen Überblick bieten.

"Before"- und "After"-Ereignisse

Es gibt zwei Kategorien von Ereignissen: Before- und After-Ereignisse. Before-Ereignisse werden ausgelöst, wenn eine bestimmte Aktion erfolgt, bevor SharePoint Foundation Informationen in die Inhaltsdatenbank zurückschreibt, die daher auch als synchrone Ereignisse bezeichnet werden. Dies bietet eine Gelegenheit für SharePoint Foundation, Aufgaben auszuführen, nachdem eine bestimmte Aktion erfolgt ist, aber bevor für die Daten in einer Datenbank ein Commit ausgeführt wird. Ein gutes Beispiel für die Verwendung synchroner Before-Ereignisse ist die Datenüberprüfung, da Before-Ereignisse vor dem Commit der Daten stattfinden. Sie können Before- (bzw. synchrone) Ereignisse auch zum Abbrechen von Benutzeraktionen verwenden, sollte beispielsweise bei der Datenüberprüfung ein Fehler auftreten.

Ereignishandlercode, der von einem Before-Ereignis ausgelöst wird, d. h. ein Before-Ereignishandler, wird im selben Prozess wie der Code ausgeführt, der die Benutzeraktion ausführt, die ihn ausgelöst hat. Aus diesem Grund sind Before-Ereignisse immer synchron. Before-Ereignisse können Sie an ihrem Elementnamen erkennen, der mit dem Suffix "-ing" endet, z. B. ItemAdding, ListAdding usw.

After-Ereignisse lösen andererseits Ereignishandler aus, die ausgeführt werden, nachdem für die Benutzeraktionen in der Inhaltsdatenbank ein Commit ausgeführt wurde, und rufen Code auf, der ausgeführt wird, nachdem die Inhaltsdatenbank geändert wurde. Dies bietet die Möglichkeit, Code zu entwickeln, der Logik ausführt, die auftritt, wenn ein Benutzer eine bestimmte Aktion abgeschlossen hat.

Da After-Ereignisse in einem anderen Prozess als die auslösende Aktion ausgeführt werden, können sie entweder synchron oder asynchron ausgeführt werden. Sie können After-Ereignisse daran erkennen, dass ihre Elementnamen auf "-ed" enden, z. B. ItemDeleted, WebProvisioned usw.

Ereignishosts

Ereignishosts sind Objekte wie Websitesammlungen, Websites, Listen und Listenelemente, die Ereignisse erwarten, bzw. deren Ereignisempfänger eine Überwachung auf SharePoint Foundation-Ereignisse durchführen. Zu diesen SharePoint Foundation 2010-Ereignistypen für Hostobjekte gehören Instanzen gängiger Objekte, z. B. SPSite, SPWeb, SPList und SPContentType. Jeder der Ereignishosttypen verfügt über spezifische Basistypen von Ereignisempfängern, die vererbt werden können, um eine Ereignisempfängerauflistung zu erstellen.

Eine vollständige Liste der Hosttypen und ihrer Ereignisempfängertypen finden Sie unter Tabelle mit SharePoint-Ereignissen, -Ereignisempfängern und -Ereignishosts und Katalog mit SharePoint Foundation-Ereignissen.

Ereignisempfänger und -handler

SharePoint Foundation-Ereignishandler sind ein kompiliertes Modul aus benutzerdefiniertem verwalteten Code, dessen Aufruf durch ein bestimmtes Ereignis ausgelöst wird, das Sie angegeben haben. Ereignishandlercode wird in eine DLL-Datei kompiliert und dem GAC bereitgestellt.

Ereignishandler in SharePoint Foundation bieten außergewöhnliche Flexibilität bei der präzisen Verarbeitung von SharePoint-Ereignissen.

Informationen zum Entwickeln eines Ereignisempfängers mithilfe von Visual Studio finden Sie unter Erstellen eines Ereignishandlers.

Binden von Ereignishandlern

Nachdem Ereignishandlercode kompiliert und im GAC bereitgestellt wurde, müssen Sie ihn an ein Empfängerobjekt binden. Bei diesem Vorgang (auch als "Registrierung" bezeichnet) wird Ereignishandlercode einem Objekttyp zugeordnet.

Es gibt zwei Möglichkeiten, Ereignishandler zu binden. Bei einer wird deklarative XML innerhalb eines SharePoint-Features (entweder nach Listentyp oder Inhaltstyp) verwendet. Weitere Informationen finden Sie unter Binden von Ereignishandlern mithilfe von Features.xml in SharePoint.

Die andere Methode sieht das Implementieren Ihrer Ereignishandlerbindung durch Schreiben von Code vor, der Klassen des SharePoint-Objektmodells implementiert. Weitere Informationen finden Sie unter Binden eines Ereignishandlers mithilfe des SharePoint-Objektmodells.

Siehe auch

Aufgaben

Gewusst wie: Erstellen eines Ereignishandlerfeatures

Konzepte

Binden eines SharePoint Foundation-Ereignishandlers

Erstellen eines Ereignishandlers

Verbesserungen beim Ereignismodell für SharePoint Foundation 2010