Книга: C# для профессионалов. Том II
Создание приемника событий
Создание приемника событий
Теперь было бы полезно создать приложение, которое получает событие, когда в службе происходит что-то плохое. Мы создадим простое оконное приложение, отслеживающее события службы Quote
:
Оконное приложение имеет только окно списка и кнопку выхода:
Компонент EventLog
добавляется в этот проект перетаскиванием его из панели инструментов. Свойство Log
задается как Application
, a Source
как источник службы QuoteService
. Класс EventLog
также имеет свойство EnableRaisingEvents
. До сих пор мы не говорили об этом свойстве. По умолчанию для него используется значение false, задание его как true означает, что событие создается каждый раз, когда происходит это событие, и можно написать обработчик событий для оконного события EntryWritten
.
В файле EventListener.cs
свойства задаются в методе InitializeComponent()
:
private void InitializeComponent() {
this.eventLogQuote = new System.Diagnostics.EventLog();
this.buttonExit = new System.Windows.Forms.Button();
this.listBoxEvents = new System.Windows.Forms.ListBox();
((System.ComponentModel.ISupportInitialize)
(this.eventLogQuote)).BeginInit();
this.SuspendLayout();
//
// eventLogQuote
//
this.eventLogQuote.EnableRaisingEvents = true;
this.eventLogQuote.Log = "Application";
this.eventLogQuote.Source = "QuoteService";
this.eventLogQuote.SynchronizingObject = this;
this.eventLogQuote.EntryWritten +=
new System.Diagnostics.EntryWrittenEventHandler(this.OnEntryWritten);
// ...
Программа обработки OnEntryWritten()
получает объект EntryWrittenEventArgs
в качестве аргумента, где можно получить всю информацию из события. С помощью свойства Entry
мы получаем объект EventLogEntry
с информацией о времени, источнике события, типе, категории и т. д.:
protected void OnEntryWritten(object sender, System.Diagnostics.EntryWrittenEventArgs e) {
DateTime time = e.Entry.TimeGenerated;
string message = e.Entry.Message;
listBoxEvents.Items.Add(time + " " + message);
}
Выполняющееся приложение показывает все события для QuoteService
:
- Регистрация событий
- Создание файлов с блокировкой
- Раздел VII Левиафан в Сети: защита права на тайну частной жизни после событий 2013 г.
- Создание свободно позиционируемых элементов
- 12. Лекция: Создание приложений с графическим интерфейсом пользователя.
- Расширение механизма событий
- Создание объектов Collection
- 7.4.2.4. Создание своего первого LiveCD
- 4.2. Создание трехмерной модели и построение горизонтальной проекции детали
- 7.4.2. Создание собственного LiveCD
- Создание пользователя и группы на рабочей станции
- Создание корня документа: