Potrzebuję wykonać raportowanie w czasie rzeczywistym na temat funkcjonalności usługi WCF. Usługa jest hostowana w aplikacji Windows, a moim wymaganiem jest zgłaszanie "na żywo" do aplikacji hosta, gdy klient wywoła określone metody.Subskrybuj zdarzenia w ramach usługi WCF
Moja pierwsza myśl na temat zadania polegała na opublikowaniu zdarzenia "NotifyNow" w kodzie serwisowym i zasubskrybowaniu wydarzenia w mojej aplikacji do rozmów, ale nie wydaje się to możliwe. W moim kodu serwisowego (realizacja, a nie interfejsu) Próbowałem dodanie następującego
public delegate void MessageEventHandler(string message);
public event MessageEventHandler outputMessage;
void SendMessage(string message)
{
if (null != outputMessage)
{
outputMessage(message);
}
}
i wywołać metodę SendMessage ilekroć muszę zawiadomić aplikację hosta jakiegoś działania. (Jest to oparte na tym, co pamiętam z tego rodzaju komunikacji międzyformowej w aplikacji WinForm, a moja pamięć mogła mnie tu zawiodła ...)
Kiedy próbuję podłączyć obsługę zdarzeń w moim hoście jednak, że nie może wydawać się aby dowiedzieć się, jak dołączyć do wydarzeń ... Mój kod jest gospodarzem (w pigułce)
service = new ServiceHost(typeof(MyService));
service.outputMessage += new MyService.MessageEventHandler(frm2_outputMessage);
// the above line does not work!
service.Open();
(zawinięte w try/catch).
Czy ktoś może pomóc, mówiąc mi, jak uzyskać takie podejście do pracy lub wskazując mnie w lepszy sposób.
TIA
CustomEvent nie pojawia się dla mnie w Service1. Czy to działa z WCF 4.5? –