Abonnez-vous à des événements au sein d'un service WCF

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 rapport "vivre" à 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 "NotifyNow" de l'événement dans le code de service, et de vous inscrire à l'événement dans mon application appelante, mais cela ne semble pas être possible. Dans mon code de service (mise en œuvre, et non pas l'interface) j'ai essayé d'ajouter le suivant

public delegate void MessageEventHandler(string message);
public event MessageEventHandler outputMessage;

void SendMessage(string message)
{
    if (null != outputMessage)
    {
        outputMessage(message);
    }
}

et d'appeler la méthode SendMessage chaque fois que j'ai besoin de signaler à l'hôte application de certaines mesures. (Ceci est basé sur ce que je retiens de ce type d'inter-forme de communication dans une application winforms, et ma mémoire peut me laisser ici-bas...)

Quand j'ai essayer de brancher le gestionnaire d'événement dans mon hôte, cependant, je n'arrive pas à comprendre comment attacher les événements... Mon code d'hébergement est (en un mot)

service = new ServiceHost(typeof(MyService));
service.outputMessage += new MyService.MessageEventHandler(frm2_outputMessage);
  //the above line does not work!
service.Open();

(enveloppé dans un try/catch).

N'importe qui peut aider, en me disant comment faire pour obtenir cette approche du travail ou de me pointer à une meilleure façon.

TIA

OriginalL'auteur ZombieSheep | 2009-10-08