[MSDN]WCF(5)生成WCF客户端

说明:本内容来自微软的webcast,讲师为徐长龙。为了用手机阅读方便点,抄录存为txt。

本次课程内容包括
- 获取服务终结点的服务协定、绑定以及地址信息。
- 使用该信息创建WCF客户端
- 调用操作
- 处理错误
- 为双工服务创建回调对象
- 异步调用服务


1. 获取服务协定、绑定和地址
- 通常,可以通过使用ServiceMode Metadat Utility Tool(Svcutil.exe)完成此操作
  - 从服务中下载元数据,并使用您选择的语言将其转换到托管源代码文件中
    - 创建一个可用于配置WCF客户端对象的客户端应用程序配置文件
    - Svcutil /language:vb /out:ClientCode.vb /config:app.config
      http://computerName/MyCalculatorService/Service.svc?wsdl
 - 此协定代码编译为客户端应用程序或另一个程序集,然后,客户端应用程序可以使用该程序集创建一个WCF对象。
 - 可以使用配置文件配置客户端对象以与服务正确连接


2.创建一个WCF客户端对象
- WCF客户端是表示某个服务的一个本地对象,客户端可以使用这种表示形式与远程服务进行通信。
- WCF客户端类型可实现目标服务协定,因此在创建一个服务协定并配置它之后,就可以直接使用客户端对象调用服务操作。
- WCF运行时方法调用转换为消息,然后将这些消息发送到服务,侦听回复,并将这些值作为返回值或out参数(或ref参数)返回到WCF客户端对象中。
- SampleServiceClient:System.ServiceModel.ClientBase<ISampleService>,ISampleService


3.调用操作
CalculatorClient client = new CalculatorClient();
try{
double result = client.Add(value1, value2);
client.Close();
}
catch (TimeoutException exception)
{client.Abort();}


4.处理错误
- 由操作返回的SOAP错误导致引发的任何System.ServiceModel.FaultException对象
- 至少将应用程序设置为能过处理可能的 TimeoutException 和 CommunicationException


5.配置和保护客户端
- 服务协定的安全要求已在服务协定接口中声明,并且如果Svcutil.exe已创建了一个配置文件,则该文件通常会包含一个能够支持服务安全要求的绑定。但是在某些情况中,可能需要更多的安全配置,例如配置客户端凭据。


6.为双工服务创建回调对象
- 双工服务指定一个回调协定,客户端应用程序必须实现该协定以便提供一个该服务能够根据协定要求调用的回调对象。
  - 实现一个回调协定类
  - 创建回调协定实现类的一个实例,并使用该实例创建传递给WCF客户端构造函数的System.ServiceMode.InstanceConctext对象。
  - 调用操作并处理操作回调。


7.异步调用服务
- 如何调用操作完全取决于客户端开发人员。
  这是因为当在托管代码中表示组成操作的消息时,这些消息可以映射到同步或异步方法中。因此如果想要生成异步调用操作的客户端,则可以使用 Svcutil.exe 通过 /async 选项生成异步客户端代码。
  使用async时,同步方法同时会生成异步方法,同理异步方法也会生成一个同步方法。

@@调用服务2种方法
1 使用 Svcutil 工具生成代理类 。生成代码干净,常用。
2 使用 “添加服务参考” 自动生成代理类。生成很多相关文件,简单。

posted @ 2012-01-22 21:22  yellowwood  阅读(301)  评论(0编辑  收藏  举报
Never Give UP