我的问题很简单,但不知何故我迷路了。
我有一个项目,包括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属性。
我错过了什么?
我是否必须提及合同中的任何内容?
或者还有其他方法可以实施吗?
我感恩如果你能帮助我......
答案 0 :(得分:0)
您可以实现WSDualHttpBinding,它允许您定义回调契约 WCF为每个操作提供了异步方差。你可以在回调操作上调用异步操作,这样服务器进程就会继续运行....即使回调也会有DataContract所以只需要创建DataContract类,它将保存你想在UI中显示的所有值..Imagine回调为客户端公开的服务,以便Server可以通过调用适当的操作来通知客户端。