के भीतर घटनाओं की सदस्यता लें मुझे डब्ल्यूसीएफ सेवा की कार्यक्षमता पर कुछ वास्तविक समय रिपोर्टिंग करने की आवश्यकता है। यह सेवा एक विंडोज ऐप में स्वयं-होस्ट की जाती है, और मेरी आवश्यकता क्लाइंट द्वारा कुछ विधियों को बुलाए जाने पर मेजबान ऐप पर "लाइव" की रिपोर्ट करना है।डब्ल्यूसीएफ सेवा
कार्य पर मेरा प्रारंभिक विचार सेवा कोड में "NotifyNow" ईवेंट प्रकाशित करना था, और मेरे कॉलिंग ऐप में ईवेंट की सदस्यता लेना था, लेकिन ऐसा संभव नहीं लगता है। मेरी सेवा कोड (कार्यान्वयन, नहीं अंतरफलक) के भीतर मैं निम्नलिखित
public delegate void MessageEventHandler(string message);
public event MessageEventHandler outputMessage;
void SendMessage(string message)
{
if (null != outputMessage)
{
outputMessage(message);
}
}
जोड़ने की कोशिश की और SendMessage विधि कॉल जब भी मैं कुछ कार्रवाई के मेजबान एप्लिकेशन सूचित करने की आवश्यकता है। (यह एक विनफॉर्म ऐप में इस तरह के इंटर-फॉर्म संचार के बारे में मुझे याद है, और मेरी याददाश्त ने मुझे यहां छोड़ दिया होगा ...)
जब मैं अपने होस्ट में ईवेंट हैंडलर को हुक करने की कोशिश करता हूं , हालांकि, मैं यह पता लगाने की घटनाओं के लिए संलग्न करने के लिए कैसे ... मेरी होस्टिंग कोड है (संक्षेप में) नहीं कर पा रहे
service = new ServiceHost(typeof(MyService));
service.outputMessage += new MyService.MessageEventHandler(frm2_outputMessage);
// the above line does not work!
service.Open();
(आज़माएं/कैच में लिपटे)।
कोई भी मुझे बता सकता है कि काम करने के लिए यह तरीका कैसे प्राप्त करें या मुझे बेहतर तरीके से इंगित करें।
TIA
कस्टमइवेंट मेरे लिए सेवा 1 के तहत दिखाई नहीं देता है। क्या यह डब्ल्यूसीएफ 4.5 के साथ काम करता है? –