教程 1:开发 Echo 适配器

在本教程中,将使用 WCF LOB 适配器 SDK 开发功能适配器。 适配器模拟虚构业务线系统的作,以演示 WCF LOB 适配器 SDK 的许多主要功能,包括:

  • 同步入站

  • 同步出站

  • 元数据浏览

  • 元数据搜索

  • 元数据解析

    回显适配器支持的各种功能包含在本部分中。 它们是消息交换、作元数据、连接属性和适配器属性。

消息交换模式

回声适配器支持以下两种消息交换模式:

  • 同步出站,即使用客户端通过适配器将 WCF 请求消息发送到目标系统,然后等待通过适配器从目标系统接收 WCF 响应消息。 这是适配器最常见的消息交换模式。 若要支持同步出站,请实现 Microsoft.ServiceModel.Channels.Common.IOutboundHandler 接口。

  • 同步入站,即消费客户端通过适配器侦听来自目标系统的数据或事件。 若要支持同步入站,请实现 Microsoft.ServiceModel.Channels.Common.IInboundHandler 接口。

    有关消息交换模式的详细信息,请参阅 体系结构概述

注释

适配器开发向导在 UI 中将消息交换模式显示为数据流。

元数据支持

回显适配器支持元数据浏览、搜索和解析功能。 通常,浏览和搜索是从 LOB 系统中获取数据的操作。 对于回声适配器,LOB 系统是一组预定义的操作,如下所示:

EchoMainCategory  
        Echo/EchoStrings  
        Echo/EchoGreetings  
        Echo/EchoCustomGreetingFromFile  
        Echo/OnReceiveEcho  

下面是每个操作的定义:

名称 操作定义 说明 方向
EchoMainCategory 类别 对操作进行分类。
Echo/EchoStrings string[] EchoStrings(字符串数据) 将传入的字符串重复到调用客户端指定的次数。 出站
Echo/EchoGreetings Greeting[] EchoGreetings(问候问候) 将传入的 Greeting 对象重复输出到调用客户端,达到指定的次数。 出站
Echo/EchoCustomGreetingFromFile CustomGreeting EchoCustomGreetingFromFile(Uri greetingInstancePath) 从文件中读取 Greeting 对象的实例并进行回显。 Greeting 对象的元数据是从预定义的 XSD 文件获取的。 出站
Echo/OnReceiveEcho void OnReceiveEcho(Uri 路径,长内容) 回显在指定文件夹中删除的文件的位置和长度。 入站

适配器属性

适配器公开以下适配器属性。

名称 类别 数据类型 说明
计数 杂项 System.Int32 用于将输入的指定次数回显到调用客户端。

默认值 = 5
启用连接池 杂项 System.Boolean 用于启用或禁用适配器的连接池功能。

默认值为 true,这意味着在 WCF LOB 适配器 SDK 的运行时引擎中启用了连接池。
InboundFileFilter 入站 System.String 系统 仅用于入站方案,由 FileSystemWatcher 用来监视扩展的文件。

Default=*.txt
InboundFileSystemWatcherFolder 入站 System.String 系统 用于设置文件将被删除的文件夹,以便 FileSystemWatcher 向适配器发出通知。

默认值 = c:\inbound\watcher。

连接属性

回显适配器公开以下连接属性。

名称 数据类型 说明
应用程序 System.String 系统 LOB 系统中的应用程序名称。 此属性用于说明目的。 回显适配器不涉及任何 LOB 系统。

默认值 = lobapplication
启用身份验证 System.Boolean 如果条件为 true,则适配器期望在客户端凭据的用户名字段中输入一个值。

默认值 = false
主机名 System.String 系统 LOB 系统所在的服务器名称。 此属性用于说明目的。 回显适配器不涉及任何 LOB 系统。

Default = lobhostname

接口实现

WCF LOB 适配器 SDK 定义一组类和接口,这些类和接口必须实现以支持适配器的特定功能。 下表描述了这些类和接口、它们的说明以及何时实现它们。

类/接口 何时实现 说明
Microsoft.ServiceModel.Channels.Common.IConnection 如果需要定义与目标系统的连接。 定义与目标系统的连接。
Microsoft.ServiceModel.Channels.Common.IConnectionFactory 如果需要创建与目标系统的连接。 创建与目标系统的连接。
Microsoft.ServiceModel.Channels.Common.ConnectionUri 如果需要管理连接 URI。

如果需要在“添加适配器服务引用插件”工具中对连接属性进行分类。
管理目标系统的连接 URI。
Microsoft.ServiceModel.Channels.Common.IMetadataResolverHandler 适配器必须支持元数据解析功能。 解析操作和类型元数据。
Microsoft.ServiceModel.Channels.Common.IMetadataSearchHandler 如果适配器支持元数据搜索功能。 搜索目标系统中的操作。
Microsoft.ServiceModel.Channels.Common.IMetadataBrowseHandler 适配器必须支持浏览功能 浏览目标系统中的操作。
Microsoft.ServiceModel.Channels.Common.IOutboundHandler 如果适配器通常需要支持外部通信功能。 将传入的 WCF 请求消息转换为目标系统消息,调用目标系统特定的函数,然后将响应转换为传出 WCF 响应消息。
Microsoft.ServiceModel.Channels.Common.IInboundHandler 如果适配器支持入站功能。 监听来自目标系统的数据和/或事件。

若要简化适配器开发,请使用适配器开发向导生成适配器项目,该项目创建一组派生类,这些类专为适配器功能定制。

若要通过“添加适配器服务引用插件”和使用适配器服务外接程序工具自定义适配器和连接属性,请修改适配器开发向导生成的以下文件。

另请参阅

学习 WCF LOB 适配器 SDK 的教程