Мне нужно сделать некоторые отчеты в режиме реального времени о функциях службы 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();
(завернутый в try/catch).
Может ли кто-нибудь помочь, сказав мне, как заставить этот подход работать или указав на меня лучше.
ТИА