我有一个班级引发一些事件并进行操作。例如
class MyService
{
EventHandler MessageSent;
EventHandler StatusReceived;
public void StartService(Serviceconfig configObject)
{
//Intialize serial port with OnSerialPortReceived event handler.
}
public void GetStatusForMessage(string messageID)
{
}
public void OnSerialPortReceived(string data)
{
if(data=="123")
MessageSent(this,null);
if(data=="456")
StatusSent(this,null);
}
}
这是一个控制台应用程序,它将在系统启动时启动。现在,当事件服务上触发某些事件时,我们需要一个监控应用程序(基本上是一个带有回调的客户端),为此我们应该使用 WCF。并且监视器应用程序调用服务类。在上面的例子中,GetStatusForMessage 方法将被监视器应用程序调用。那么现在我们如何使用 WCF 来实现。如果使用服务契约将上述类作为服务,则在客户端发起调用之前,它不会被初始化和启动。当系统重新启动时,此类对象将被初始化并启动其功能。
我发现这篇文章http://msdn.microsoft.com/en-us/magazine/cc163537.aspx。通过这种方法,我的服务将成为发布者客户端,监控应用程序将成为订阅者客户端应用程序。但是客户端必须调用服务类。所以我的客户端应用程序应该支持回调并且它应该能够调用服务方法。如何使用 WCF 实现这一目标?请注意,监视事件的服务类是单个实例,并在应用程序启动时初始化。
希望我能得到解决方案。请让我知道更多说明。