我想在管道组件中创建两条消息,并将其传递到组装阶段,在那里它将通过BTAHL7 Microsoft加速器。
管道组件将置于发送管道“预装配”阶段。
这是返回消息的代码。
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 并循环通过该数组将其添加到队列中。然后,分别返回消息。
pInMsg
然而,尽管队列有2个值,但在管道的其他部分(组装和编码),它只返回一条消息。
为什么会这样?如何让它返回两条消息?
此逻辑在Execute方法中不起作用。您要么需要为此类管道实现IDisassembler接口,要么需要在接收位置使用它。或者,在发送到发送端口之前,使用业务流程创建多条消息。