Ho bisogno di fare alcuni rapporti in tempo reale sulla funzionalità di un servizio WCF. Il servizio è auto-ospitato in un'applicazione Windows e il mio requisito è quello di segnalare "live" all'app host quando determinati metodi vengono chiamati dal client.Iscriviti agli eventi all'interno di un servizio WCF
Il mio primo pensiero sull'attività era di pubblicare un evento "NotifyNow" nel codice del servizio e iscrivermi all'evento nella mia app chiamante, ma questo non sembra possibile. All'interno del mio codice di servizio (attuazione, non l'interfaccia) Ho provato ad aggiungere il seguente
public delegate void MessageEventHandler(string message);
public event MessageEventHandler outputMessage;
void SendMessage(string message)
{
if (null != outputMessage)
{
outputMessage(message);
}
}
e chiamare il metodo SendMessage ogni volta che ho bisogno di informare l'applicazione miriade di qualche azione. (Questo si basa su quello che ricordo di questo tipo di comunicazione inter-forma in un'app winforms e la mia memoria potrebbe avermi lasciato qui ...)
Quando provo ad agganciare il gestore di eventi nel mio host , però, io non riesco a capire come collegare agli eventi ... il mio codice di hosting è (in poche parole)
service = new ServiceHost(typeof(MyService));
service.outputMessage += new MyService.MessageEventHandler(frm2_outputMessage);
// the above line does not work!
service.Open();
(avvolto in un try/catch).
Qualcuno può aiutare, sia dicendomi come ottenere questo approccio al lavoro o indicando me in un modo migliore.
TIA
CustomEvent non viene visualizzato per Service1 per me. Funziona con WCF 4.5? –