开发探测管道组件
(常规、汇编或反汇编) 的任何管道组件都可以实现 IProbeMessage
接口(如果它必须支持消息探测功能)。 探测组件用于具有 FirstMatch 执行模式的管道阶段。 在此类阶段中,BizTalk 消息引擎将消息的开始部分提供给组件,以便确定组件是否识别该消息的格式。 如果组件识别格式,则会将整个消息交给此组件进行处理。
IProbeMessage 接口公开单个方法 Probe,该方法使组件能够检查消息的开头部分。 返回值确定此组件是否已运行。 以下步骤说明了 BizTalk 消息引擎如何运行需要识别的阶段:
如果阶段不包含任何组件,则该阶段不运行,消息交给随后的阶段进行处理。
检查组件是否实现 IProbeMessage 接口。 如果没有,消息引擎将调用该组件。 阶段处理完成,消息交给下一个阶段。
将调用 Probe 方法。 如果返回值为 True,则运行组件。 然后,阶段处理完成,消息交给下一个阶段。
消息引擎获取阶段中的下一个组件。 如果没有其他组件并且所有组件都尚未运行,则生成一个错误,提示您管道处理失败。 如果没有其他组件并且至少有一个已运行,则处理完成。
例如,如果阶段不需要识别 (执行模式为 “全部) ”,则消息引擎将调用组件,而无需先查询 IProbeMessage 接口并调用 Probe 方法。