Share via


Usar la API administrada de envío de eventos

Puede usar las clases EventCollector y Event en un proveedor de eventos personalizados cuando trabaje con un origen de eventos que pueda proporcionar eventos como elementos individuales. Estas clases se pueden encontrar en el espacio de nombres Microsoft.SqlServer.NotificationServices.

Objeto EventCollector

Un objeto EventCollector recopila eventos y, a continuación, envía el lote de eventos a una aplicación de Notification Services. Al crear un objeto EventCollector, lo inicializa con una aplicación y un nombre de proveedor de eventos.

Objeto Event

Un objeto Event encapsula los datos de un solo evento. Al crear un objeto Event, inicializa el evento con una aplicación y un nombre de clase de evento y, a continuación, proporciona valores a los campos de evento. El esquema de clases de evento define los campos del objeto Event.

[!NOTA] Puede crear un objeto Event sin inicializarlo. Esto le permite crear un objeto Event "desconectado" que no tiene una referencia a una aplicación de Notification Services. Para utilizar esta técnica, debe conocer el nombre de las clases de evento y los nombres de los campos de evento en tiempo de desarrollo.

Cree, llene y envíe un objeto Event para cada registro de evento que desee crear. Puede reutilizar un objeto Event después de escribir el evento en el objeto EventCollector.

Escribir y confirmar eventos

Después de crear un objeto Event y llenarlo con datos de eventos, agréguelo a un objeto EventCollector con el método Write.

El objeto EventCollector también proporciona un método Abort. Llame a este método para descartar el lote actual de eventos.

Ejemplo de objetos EventCollector y Event

En este ejemplo se utilizan los siguientes espacios de nombres:

  • 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();

Ejemplo de objeto Event desconectado

Este ejemplo muestra cómo definir un evento sin inicializar el objeto Event con NSApplication y EventClass.

// Initialize the Event object.
Event testEvent = new Event();
testEvent.EventClassName = "StockEvents";

// Use the Event object.
testEvent["StockSymbol"] = "AWKS";
testEvent["StockPrice"] = "58.35";

Vea también

Conceptos

Desarrollar proveedores de eventos alojados
Desarrollar proveedores de eventos no alojados

Otros recursos

Desarrollar un proveedor de eventos personalizados

Ayuda e información

Obtener ayuda sobre SQL Server 2005