Verwenden der verwalteten Ereignisübermittlungs-API
Sie können die Klassen EventCollector und Event in einem benutzerdefinierten Ereignisanbieter verwenden, wenn die verwendete Ereignisquelle Ereignisse als einzelne Elemente bereitstellen kann. Diese Klassen sind im Microsoft.SqlServer.NotificationServices-Namespace enthalten.
EventCollector-Objekt
Ein EventCollector-Objekt sammelt Ereignisse und übermittelt dann den Ereignisbatch an eine Notification Services-Anwendung. Beim Erstellen eines EventCollector-Objekts initialisieren Sie es mit einer Anwendung und einem Ereignisanbieternamen.
Event-Objekt
Ein Event-Objekt kapselt die Daten für ein einzelnes Ereignis. Beim Erstellen eines Event-Objekts initialisieren Sie das Ereignis mit einer Anwendung und einem Ereignisklassennamen und stellen dann Werte für die Ereignisfelder bereit. Die Felder des Event-Objekts werden durch das Ereignisklassenschema definiert.
Hinweis: |
---|
Sie können ein Event-Objekt erstellen, ohne es zu initialisieren. So können Sie ein "getrenntes" Event-Objekt erstellen, das nicht über einen Verweis auf eine Notification Services-Anwendung verfügt. Zum Verwenden dieser Technik müssen Sie den Ereignisklassennamen und die Ereignisfeldnamen zur Entwicklungszeit kennen. |
Für jeden Ereignisdatensatz, den Sie erstellen möchten, erstellen Sie ein Event-Objekt, füllen es auf und übermitteln es. Sie können ein Event-Objekt wieder verwenden, nachdem Sie das Ereignis in das EventCollector-Objekt geschrieben haben.
Schreiben von Ereignissen und Ausführen eines Commits für Ereignisse
Nachdem Sie ein Event-Objekt erstellt und mit Ereignisdaten aufgefüllt haben, fügen Sie es einem EventCollector-Objekt hinzu. Dazu verwenden Sie die Write-Methode.
Das EventCollector-Objekt stellt außerdem eine Abort-Methode bereit. Rufen Sie diese Methode auf, um den aktuellen Ereignisbatch zu verwerfen.
EventCollector- und Event-Objekt (Beispiel)
In diesem Beispiel wird der folgende Namespace verwendet:
- System
- Microsoft.SqlServer.NotificationServices
string instanceName = "Tutorial";
string applicationName = "Weather";
string eventClassName = "WeatherEvents";
string eventProviderName = "WeatherSPs";
// Create an NSInstance object.
NSInstance testInstance = new NSInstance(instanceName);
// Create an NSApplication object.
NSApplication testApplication =
new NSApplication(testInstance, applicationName);
// Create an EventCollector object.
EventCollector testEventCollector =
new EventCollector(testApplication, eventProviderName);
// Create and define an Event object.
Event evt = new Event(testApplication, eventClassName);
evt["City"] = "Seattle";
evt["Date"] = DateTime.Now;
evt["Low"] = 40;
evt["High"] = 50;
evt["Forecast"] = "Cloudy";
// Write the event to the event collector's batch
testEventCollector.Write(evt);
// Commit the event batch to the application database.
testEventCollector.Commit();
Getrenntes Event-Objekt (Beispiel)
Dieses Beispiel veranschaulicht, wie Sie ein Ereignis ohne Initialisieren des Event-Objekts mit einem NSApplication-Objekt und einem EventClass-Objekt definieren.
// Initialize the Event object.
Event testEvent = new Event();
testEvent.EventClassName = "StockEvents";
// Use the Event object.
testEvent["StockSymbol"] = "AWKS";
testEvent["StockPrice"] = "58.35";
Siehe auch
Konzepte
Entwickeln von gehosteten Ereignisanbietern
Entwickeln von nicht gehosteten Ereignisanbietern
Andere Ressourcen
Entwickeln eines benutzerdefinierten Ereignisanbieters