Подписаться на события в сервисе WCF
У меня есть необходимость сделать некоторые отчеты в реальном времени о функциональности службы WCF. Служба размещается в приложении Windows самостоятельно, и мое требование состоит в том, чтобы сообщать «живой» приложению хоста, когда клиент вызывает определенные методы.
Сначала я задумался о том, чтобы опубликовать событие «NotifyNow» в коде службы и подписаться на событие в моем вызывающем приложении, но это кажется невозможным. В моем сервисном коде (реализация, а не интерфейс) я попытался добавить следующее
public delegate void MessageEventHandler(string message);
public event MessageEventHandler outputMessage;
void SendMessage(string message)
{
if (null != outputMessage)
{
outputMessage(message);
}
}
и вызывать метод SendMessage всякий раз, когда мне нужно уведомить приложение хоста о каком-либо действии. (Это основано на том, что я помню об этом виде межличностного общения в приложении winforms, и моя память, возможно, подвела меня здесь ...)
Однако, когда я пытаюсь подключить обработчик событий на своем хосте, я не могу понять, как присоединиться к событиям ... Мой код хостинга (в двух словах)
service = new ServiceHost(typeof(MyService));
service.outputMessage += new MyService.MessageEventHandler(frm2_outputMessage);
// the above line does not work!
service.Open();
(завернутый в попытку / поймать).
Может ли кто-нибудь помочь, либо рассказав мне, как заставить этот подход работать, либо указав мне лучший путь.
ТИА