我希望使用 MsmqIntegrationBinding 与具有序列化对象作为消息正文的遗留队列集成。有没有人想出一种方法来获取消息正文的“元数据”并创建一个服务端类以在服务中使用?
例如,如果我从系统 A 中放入一个序列化的 Product 对象并且我的服务需要使用它,如果我身边没有 Product 类,我如何为 MsmqMessage 提供类型?我正在考虑在一个单独的程序中读取一条消息,反序列化,然后通过代码 dom 发出。想法?
我希望使用 MsmqIntegrationBinding 与具有序列化对象作为消息正文的遗留队列集成。有没有人想出一种方法来获取消息正文的“元数据”并创建一个服务端类以在服务中使用?
例如,如果我从系统 A 中放入一个序列化的 Product 对象并且我的服务需要使用它,如果我身边没有 Product 类,我如何为 MsmqMessage 提供类型?我正在考虑在一个单独的程序中读取一条消息,反序列化,然后通过代码 dom 发出。想法?
嗯...在 WCF 中,您可以定义采用(并可选择返回)无类型Message
类型的服务方法。这似乎非常适合您的账单。
除了使用强类型消息之外,您还必须通过读取原始 XML 将所有消息放在客户端上并在服务器上进行拆分 - 但这似乎是您正在寻找的,正确的?
在此处查找更多信息和示例:
未键入的消息有一些限制,例如您只能在服务器上阅读一次,但我认为您应该能够使用它来管理您的场景。
马克
我全心全意地建议不要尝试在运行时在消息目标中发出反序列化类型。要么在目的地使用 XML 来获取你想要的数据,要么构建源和目的地都可以遵守的数据契约。