Share via


Utilizzo dell'API di inoltro di eventi gestiti

È possibile utilizzare le classi EventCollector e Event in un provider di eventi personalizzato quando si utilizza qualsiasi origine di evento in grado di specificare eventi come elementi singoli. Queste classi sono disponibili nello spazio dei nomi Microsoft.SqlServer.NotificationServices.

Oggetto EventCollector

Un oggetto EventCollector raccoglie gli eventi e quindi inoltra il batch di eventi a un'applicazione Notification Services. Quando si crea un oggetto EventCollector lo si inizializza con un'applicazione e un nome di provider di eventi.

Oggetto Event

Un oggetto Event incapsula i dati per un singolo evento. Quando si crea un oggetto Event, si inizializza l'evento con un'applicazione e un nome della classe di evento, e quindi si specificano i valori per i campi evento. I campi dell'oggetto Event sono definiti dallo schema della classe di evento.

[!NOTA] È possibile creare un oggetto Event senza inizializzarlo. Questo consente di creare un oggetto Event "disconnesso", privo di riferimento a un'applicazione Notification Services. Per utilizzare questa tecnica, è necessario conoscere il nome della classe di evento e i nomi dei campi di evento in fase di sviluppo.

Creare, popolare e inoltrare un oggetto Event per ogni record di evento da creare. È possibile riutilizzare un oggetto Event dopo aver scritto l'evento per l'oggetto EventCollector.

Scrittura e commit di eventi

Dopo aver creato un oggetto Event e averlo popolato con i dati degli eventi, aggiungerlo a un oggetto EventCollector utilizzando il metodo Write.

L'oggetto EventCollector include inoltre il metodo Abort. Chiamare questo metodo per annullare il batch di eventi corrente.

Esempio di oggetto EventCollector e Event

In questo esempio vengono utilizzati gli spazi dei nomi seguenti:

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

Esempio di oggetto Disconnected Event

In questo esempio viene illustrato come definire un evento senza inizializzare l'oggetto Event con un NSApplication e EventClass.

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

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

Vedere anche

Concetti

Sviluppo di provider di eventi hosted
Sviluppo di provider di eventi non hosted

Altre risorse

Sviluppo di un provider di eventi personalizzato

Guida in linea e informazioni

Assistenza su SQL Server 2005