WCF连接

时间:2012-01-17 09:09:18

标签: wcf

我是WCF的新手。在实例化服务时客户端是否已连接

 SampleService client = new SampleService();

或者在客户端调用方法时是否连接和断开连接?

client.sampleMethod();

我想连接到客户端并通过同一连接发送多条消息。这可能吗?

3 个答案:

答案 0 :(得分:1)

回答第二个问题:连接保持开放by default

首先,作为对上述陈述的澄清:它取决于绑定。对于初学者来说,ClientBase<TChannel>中没有Connect()方法(WCF代理客户端继承自该方法),因此调用它是没有用的,因为这会抛出编译器错误。

首次呼叫服务时,与服务建立连接;构造函数只是将客户端对象置于可用状态,它不连接到服务。

答案 1 :(得分:0)

使用该服务时已连接。如果你这样写,你还需要调用client.Close()。我们大多写这样的服务电话:

using(var client = new SampleServiceClient()){
  client.MethodA();
  client.MethodB();
}

所以是的,你可以在一个服务实例上调用多个方法。通过编写using语句,您可以确保在使用后处理该服务。

或者如果您愿意:

var client = new SampleServiceClient();
client.MethodA();
client.MethodB();
client.Close();

答案 2 :(得分:0)

您需要将生成的代理称为Connect方法。

e.g。

SampleServiceProxy client = new SampleServiceProxy();
client.Connect()
client.SampleMethod()