Использование API-интерфейса передачи управляемого события
Можно использовать классы EventCollector и Event в пользовательском поставщике событий при работе с любым источником событий, который может предоставлять события в виде отдельных элементов. Эти классы находятся в пространстве имен Microsoft.SqlServer.NotificationServices.
Объект EventCollector
Объект EventCollector собирает события, а затем пересылает пакет событий приложению служб Notification Services. При создании объекта EventCollector осуществляется его инициализация с приложением и именем поставщика событий.
Объект Event
Объект Event инкапсулирует данные для одного события. При создании объекта Event осуществляется его инициализация с приложением и именем класса событий, а затем предоставляются значения для полей события. Поля объекта Event определяются в схеме класса событий.
Примечание. |
---|
Можно создать объект Event без его инициализации. Это позволяет создать «отсоединенный» объект Event, который не имеет ссылки на приложение служб Notification Services. Для использования этой технологии необходимо знать имя класса событий и имена полей событий во время разработки. |
Можно создать, заполнить и переслать один объект Event для каждой записи события, которую необходимо создать. Можно повторно использовать объект Event после записи события в объект EventCollector.
Запись и фиксация событий
После создания объекта Event и заполнения его данными события он добавляется в объект EventCollector с использованием метода Write.
Объект EventCollector также предоставляет метод Abort. Этот метод вызывается для отмены текущего пакета событий.
Пример объектов EventCollector и события
В этом примере используются следующие пространства имен:
- 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();
Пример отсоединенного объекта Event
В данном примере показано определение события без инициализации объекта Event с NSApplication и EventClass.
// Initialize the Event object.
Event testEvent = new Event();
testEvent.EventClassName = "StockEvents";
// Use the Event object.
testEvent["StockSymbol"] = "AWKS";
testEvent["StockPrice"] = "58.35";
См. также
Основные понятия
Разработка внутрипроцессных поставщиков событий
Разработка внепроцессных поставщиков событий
Другие ресурсы
Разработка пользовательского поставщика событий