WCF 双工模式 Duplex
客户端可以向服务端发送消息,而服务端也可以自主地向客户端发送消息。而不是被动地回复。
这样客户端在实例化服的时候就需要传递一个对象供服务端需要的时候调用。
问题一:服务端需要在窗体上显示客户端发送的信息,这些就需要往一个控件当中写入信息。
但是实例化的时候不清楚怎样去传递这个值。
如:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
public class Service1 : IService1
{
ICalculatorDuplexCallback callback = null;
System.Windows.Forms.ListBox lbox1 = new System.Windows.Forms.ListBox();
public Service1(System.Windows.Forms.ListBox _lbox1)
{
lbox1 = _lbox1;
callback = OperationContext.Current.GetCallbackChannel<ICalculatorDuplexCallback>();
}
public void Request(string msg)
{
lbox1.Items.Add(msg);
}
public void Reply(string msg)
{
callback.Reply(msg);
}
}
但是 System.Windows.Forms.ListBox 对象不知道怎样传递进来。如:
ServiceHost host = new ServiceHost(typeof(WcfDemo.Service1));//WcfDemo.Service1 为引用的dll中的服务
这里只是传递类型,不清楚如何传递参数。