msmq单个队列中的多个消息类型

时间:2011-11-17 12:15:03

标签: msmq

我计划让一个队列接收~100种不同的消息类型。

如果我只有2种不同的类型,我会做这样的事情

MessageQueue queue = new MessageQueue(_queue); queue.Formatter = new XmlMessageFormatter(new Type [] {typeof(CreateReportComand),typeof(CreateReportComand2)});

将XmlMessageFormatter传递给大约100种类型的数组是不是很疯狂。如果不是,检查收到的消息以决定如何处理它的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

您可以使用WCF MsmqIntegrationBinding并处理MsmqMessage<string>类型的消息。然后你的处理程序方法将接收序列化的消息作为字符串,然后可以用它做你想要的。

答案 1 :(得分:0)

我不使用Message.Formatter和Message.Body。相反,我使用Message.BodyStream手动序列化/反序列化我的消息。 消息类型可以嵌入到序列化数据中(这就是我所做的),或者您可以将其放在消息标题或标签上。