在GUI上显示服务器计数器,同时仍在进行中

时间:2016-02-16 10:11:48

标签: c# wcf event-handling


我的问题很简单,但不知何故我迷路了。

我有一个项目,包括ClientProject和ServerProject(WCF服务应用程序)包含我的Service类及其接口 该服务运行方法迭代次数很少 我需要做的就是在GUI上显示服务的实时迭代次数,
这样用户在运行时就能了解服务活动状态
我已经看到了在服务上声明委托ServerEventHandler的示例,
并在客户方注册该事件。
例如:

ServiceProject:

public delegate void ServerEventHandler(object sender, EventArgs e);
public event ServerEventHandler ServerEvent; <br/><br/>

ClientProject:

public Client(Server s)
{
    s.ServerEvent += new Server.ServerEventHandler(Subscribe);
}

但我无法弄清楚如何在我的WCF项目中实现它,因为我的客户端和服务器是分离的项目,因此我在ClientProject上获取ServiceProject值的唯一方法是通过其ServiceReference。 我无法理解客户端如何拥有服务实例,以及如何通过它访问ServerEvent属性。

我错过了什么? 我是否必须提及合同中的任何内容?
或者还有其他方法可以实施吗?

我感恩如果你能帮助我......

1 个答案:

答案 0 :(得分:0)

您可以实现WSDualHttpBinding,它允许您定义回调契约 WCF为每个操作提供了异步方差。你可以在回调操作上调用异步操作,这样服务器进程就会继续运行....即使回调也会有DataContract所以只需要创建DataContract类,它将保存你想在UI中显示的所有值..Imagine回调为客户端公开的服务,以便Server可以通过调用适当的操作来通知客户端。