我需要做一些關於WCF服務功能的實時報告。該服務是在Windows應用程序中自行託管的,並且我的要求是在客戶端調用某些方法時向主機應用程序報告「實時」。訂閱WCF服務中的事件
我最初的想法是在服務代碼中發佈「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
CustomEvent不會顯示在Service1下。這是否適用於WCF 4.5? – 2013-05-09 19:22:29