我是WCF的新手。在实例化服务时客户端是否已连接
SampleService client = new SampleService();
或者在客户端调用方法时是否连接和断开连接?
client.sampleMethod();
我想连接到客户端并通过同一连接发送多条消息。这可能吗?
答案 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()