WCF客户端实例创建

时间:2016-06-11 13:09:56

标签: c# wcf

连接到WCF服务的最佳方法是什么?我的意思是什么方法更好:

  1. 每次我想调用WCF API函数时创建DataServiceClient实例,或
  2. 创建DataServiceClient实例一次,当应用程序启动并将其传播到整个应用程序时。
  3. 第一种方式效率低于第二种方法吗?

2 个答案:

答案 0 :(得分:1)

这是有争议的但是

  

每次我想调用WCF时都创建DataServiceClient实例   API函数,或

将给出一个懒惰的实例化。除非需要,否则不会创建代理对象。而

  

在应用启动时创建一次DataServiceClient实例   在整个应用程序中传播它。

将进行急切的实例化。即使您可能不需要,也可以不必要地创建代理对象。

最好的是,无论是哪个级别/ Form类;你需要使用WCF服务方法;在类/表构造函数中创建代理对象并使用相同的实例。像

Public class Form1 : Form
{
  private proxyobjecttype _client;

public Form1()
{
  _client = mywcfnamespace.Proxyobject();
}

private void someconsumermethod()
{
  _client.callWCFmethod1();
}
}

答案 1 :(得分:0)

这取决于您打算使用和使用的协议发送查询的频率。

如果每个时间间隔只有一个请求,则需要关闭客户端以便节省系统资源。

如果您计划执行一系列查询,最好将客户端保留到系列结束。

最后,您可以在客户创建成本很高的情况下实施客户端池(例如,网络中的连接超时很长)。