NServiceBus使用第三方xml

时间:2011-11-10 16:59:17

标签: nservicebus

全部,任何人都可以向我提供一些指导,允许NServiceBus使用非NServiceBus创建的队列中的XML消息。我正在尝试与将XML消息丢弃到队列的第三方系统集成。我对第三方产生的XML几乎无法控制。

我尝试使用-Messages / - 标记包装他们的XML,我可以获取消息以找到正确的处理程序,但是许多字段(特别是在子类中)只是反序列化为null。第三方产生了几种“类型”的消息,但在所有情况下,XML都相当简单。

我正在努力避免编写一个只读取XML并在总线上删除消息的适配器。

任何建议都将不胜感激。

由于

2 个答案:

答案 0 :(得分:0)

关键在于如何生成消息类。如果可以,您应该从第三方获取代表他们发送给您的XML的XSD架构。

然后,您可以使用xsd.exe从模式生成类,这几乎可以保证从XML到类型的干净反序列化。

如果无法获取模式,则可以再次使用xsd.exe从消息中推断模式。但是,此方法并不特别是故障安全,并且会对您不正确的消息产生负面影响,这些消息不符合您的推断架构。

答案 1 :(得分:0)

NSB中的序列化是抽象的,因此您可以根据该格式编写自己的序列化程序。然后,您可以告诉NSB使用序列化器而不是内置的序列化器。