MSMQ несколько типов сообщений в одной очереди - PullRequest
0 голосов
/ 17 ноября 2011

Я планирую получить в одну очередь ~ 100 сообщений разных типов.

Если бы у меня было только 2 разных типа, я бы сделал что-то вроде этого

Очередь MessageQueue = новое MessageQueue (_queue); queue.Formatter = new XmlMessageFormatter (new Type [] {typeof (CreateReportComand), typeof (CreateReportComand2)});

Это сумасшествие - передать XmlMessageFormatter массив из ~ 100 типов. И если нет, то как лучше всего изучить полученное сообщение и решить, как его обработать?

Ответы [ 2 ]

1 голос
/ 17 ноября 2011

Вы можете использовать WCF MsmqIntegrationBinding и обрабатывать сообщения типа MsmqMessage<string>. Затем ваш метод-обработчик получит сериализованное сообщение в виде строки и после этого может делать с ним то, что вы хотите.

0 голосов
/ 17 ноября 2011

Я предпочитаю не использовать Message.Formatter и Message.Body. Вместо этого я использую Message.BodyStream для ручной сериализации / десериализации моих сообщений. Тип сообщения может быть встроен в сериализованные данные (это то, что я делаю), или вы можете поместить его в заголовок сообщения или на метку.

...