【WCF系列】(四)WCF客户端怎么消费服务

时间:2022-09-01 08:45:38

WCF客户端怎么消费服务

获取服务绑定协议、绑定和地址:实现方式

SvcUtil方式:
SvcUtil.exe是一个命令行工具,位于:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin
可以将SvcUtil.exe添加到VS中方便以后的运用

生成代理类:

svcutil net.tcp://192.168.0.100:3333/ChatService /language:C# /out:proxy.cs /config:app.config

  svcutil net.tcp://192.168.0.100:3333/ChatService /a /language:C# /out:proxy.cs /config:app.config

 

创建一个WCF客户端对象

WCF客户端是表示某个WCF服务的一个本地对象,客户端就是使用这种表示形式与远程服务端进行通信的。

WCF客户端类型可以实现目标服务协定,因此在创建一个服务协定并配置正确之后就可以使用这个客户端对象调用服务端的操作了。

WCF运行时将方法调用转换为消息,然后将这些消息发送到服务,侦听回复,并将这些回复的值作为返回值或者OUT/REF方式返回到WCF客户端对象中。

创建并配置了客户端对象之后,建议创建一个TRY/CATCH快,如果该对象是本地对象,则以常规方式调用操作,然后关闭WCF客户端对象。

当客户端应用程序调用第一个操作时,WCF将自动打开基础通道,并在回收对象时关闭基础通道。

禁止使用USING来调用WCF方法。

记得添加引用

调用操作

配置和保护客户端

服务协定的安全要求已经在服务接口中声明,并且如果Svcutil已经创建好一个配置文件,则该文件通常会包含一个能够支持服务安全要求的绑定。但是在一些情况下可能需要更多的安全配置,例如客户端的凭据就需要特别是定义了。

回调

为双工服务创建回调对象

双工服务指定一个回调协定,客户端应用程序必须实现该协定以便提供一个该服务能够根据协定要求调用的回调对象。

实现一个回调协定类。

创建回调协定实现类的一个实例,并使用这个实例创建传递给WCF客户端构造函数的InstanceContext对象。

调用操作并处理操作回调。

异步调用服务

如何调用服务端操作完全取决于客户端开发人员。这是因为当在托管代码中表示组成操作的消息时,这些消息可以映射到同步或者异步方法中。

因此,如果想要生成异步操作的客户端,只需要如前面所说增加一个/async参数即可