教程 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 类别 对操作进行分类。 N/A
Echo/EchoStrings string[] EchoStrings (字符串数据) 向调用客户端回显指定次数的传入字符串。 出站
Echo/EchoGreetings Greeting[] EchoGreetings (Greeting greeting greeting) 向调用客户端回显传入的 Greeting 对象指定次数。 出站
Echo/EchoCustomGreetingFromFile CustomGreeting EchoCustomGreetingFromFile (Uri greetingInstancePath) 通过从文件中读取 Greeting 对象的实例来回显该对象。 Greeting 对象的元数据是从预定义的 XSD 文件获取的。 出站
Echo/OnReceiveecho void OnReceiveEcho (Uri 路径,长内容) 回显在指定文件夹中丢弃的文件的位置和长度。 入站

适配器属性

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

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

默认值为“5”
EnableConnectionPooling 杂项 System.Boolean 用于启用或禁用适配器的连接池。

默认值 = true,表示在 WCF LOB 适配器 SDK 的运行时引擎中启用连接池。
InboundFileFilter 入站 System.String 仅用于入站方案,并由 FileSystemWatcher 用于监视扩展的文件。

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

默认值 = c:\inbound\watcher。

连接属性

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

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

默认值 = lobapplication
EnableAuthentication System.Boolean 如果为 true,则适配器需要客户端凭据中“用户名”字段中的值。

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

默认值 = 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 的教程