我计划让一个队列接收~100种不同的消息类型。
如果我只有2种不同的类型,我会做这样的事情
MessageQueue queue = new MessageQueue(_queue); queue.Formatter = new XmlMessageFormatter(new Type [] {typeof(CreateReportComand),typeof(CreateReportComand2)});
将XmlMessageFormatter传递给大约100种类型的数组是不是很疯狂。如果不是,检查收到的消息以决定如何处理它的最佳方法是什么?
答案 0 :(得分:1)
您可以使用WCF MsmqIntegrationBinding
并处理MsmqMessage<string>
类型的消息。然后你的处理程序方法将接收序列化的消息作为字符串,然后可以用它做你想要的。
答案 1 :(得分:0)
我不使用Message.Formatter和Message.Body。相反,我使用Message.BodyStream手动序列化/反序列化我的消息。 消息类型可以嵌入到序列化数据中(这就是我所做的),或者您可以将其放在消息标题或标签上。