我是WCF的新手,我很感兴趣调用服务方法的最佳做法是什么。应用程序将包含一堆表单,我想知道是否最好为每个表单声明一个全局客户端实例,然后在需要时调用这些方法。或者,最好在每次方法调用之前实例化客户端代理,并在之后立即关闭它。
答案 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?)。
如果您在表单级别创建代理,当此代理处于故障状态时(由于连接问题),您将无法重用它并且必须重新打开表单。