J'ai besoin de faire des rapports en temps réel sur la fonctionnalité d'un service WCF. Le service est auto-hébergé dans une application Windows, et mon exigence est de signaler "en direct" à l'application hôte lorsque certaines méthodes sont appelées par le client. Ma première pensée sur la tâche était de publier un événement "NotifyNow" dans le code de service, et de m'abonner à l'événement dans mon app appelant, mais cela ne semble pas être possible. Au sein de mon code de service (mise en œuvre, et non pas l'interface) J'ai essayé d'ajouter les éléments suivantsAbonnement aux événements au sein d'un service WCF
public delegate void MessageEventHandler(string message);
public event MessageEventHandler outputMessage;
void SendMessage(string message)
{
if (null != outputMessage)
{
outputMessage(message);
}
}
et appeler la méthode SendMessage chaque fois que je dois informer l'application hôte d'une action. (Ceci est basé sur ce que je me souviens de ce type de communication inter-forme dans une application WinForms, et ma mémoire peut m'avoir laissé ici ...)
Lorsque j'essaie de connecter le gestionnaire d'événements dans mon hôte , bien que, je ne peux pas à comprendre comment attacher aux événements ... Mon code d'hébergement est (en résumé)
service = new ServiceHost(typeof(MyService));
service.outputMessage += new MyService.MessageEventHandler(frm2_outputMessage);
// the above line does not work!
service.Open();
(enveloppées dans un try/catch).
Quelqu'un peut-il m'aider, soit en me disant comment faire fonctionner cette approche ou en me montrant mieux.
TIA
CustomEvent ne s'affiche pas sous Service1 pour moi. Est-ce que cela fonctionne avec WCF 4.5? –