wcf客户端初始化和方法调用

时间:2016-08-13 11:50:49

标签: c# winforms wcf

我是WCF的新手,我很感兴趣调用服务方法的最佳做法是什么。应用程序将包含一堆表单,我想知道是否最好为每个表单声明一个全局客户端实例,然后在需要时调用这些方法。或者,最好在每次方法调用之前实例化客户端代理,并在之后立即关闭它。

2 个答案:

答案 0 :(得分:0)

我相信为每个表单创建一个全局客户端变量将为您完成,无需在每次调用服务方法之前实例化服务。

public MyService ser {get; set;} 

内部类构造函数。

ser = new MyService();

答案 1 :(得分:0)

最简单,最安全的方法是每次使用时构建客户端代理。 这种方法的缺点是失去性能,但取决于你的绑定(http,net.tcp等)和服务模式(PerCall,Statefull,Singleton)你不会注意到差异(参见这个答案WCF Proxy Pooling - Is it worth it?)。

如果您在表单级别创建代理,当此代理处于故障状态时(由于连接问题),您将无法重用它并且必须重新打开表单。