У меня есть необходимость создавать отчеты в реальном времени о функциональности службы 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).
Может ли кто-нибудь помочь, либо рассказав мне, как заставить этот подход работать, либо указав мне лучший способ.
TIA