0

我想在管道组件中创建两条消息,并将其传递到 Assemble 阶段,它将通过 BTAHL7 Microsoft Accelerator。

管道组件将放置在发送管道的“预组装”阶段。

这是将返回消息的代码。

private System.Collections.Queue qOutputMsgs = new System.Collections.Queue();
IBaseMessage[] allMessages = new IBaseMessage[] { pInMsg, pInMsg };

foreach (IBaseMessage msg in allMessages)
{
   qOutputMsgs.Enqueue(msg);
}

return (IBaseMessage)qOutputMsgs.Dequeue();

出于测试目的,我将这两个添加pInMsg到一个数组中,并循环访问该数组以将其添加到队列中。然后,将消息分开返回。

但是,虽然队列有 2 个值,但在管道的其他部分(Assemble 和 Encode)中,它只返回一条消息。

为什么这样做?我怎样才能让它返回两条消息?

4

1 回答 1

2

此逻辑在 Execute 方法中不起作用。您要么需要为此类管道实现 IDisassembler 接口,要么需要在接收位置使用它。或者,您使用编排在发送到发送端口之前创建多条消息。

于 2018-01-25T19:03:49.853 回答