2012-03-19 2 views
0

У меня есть сообщения разных типов, которые мне нужно отправить клиенту через MSMQ. Я не использую WCF, так как хочу, чтобы я сам кодировал. Как я могу различать тип данных тела сообщения при получении сообщения на клиенте, поскольку я идеально хотел бы настроить IFormatter на основе типа тела сообщения при опросе сообщений. Спасибо.Как отправлять сообщения разных типов через MSMQ?

ответ

2

Если у вас есть контроль над отправляемым форматом сообщений, вы можете обернуть каждое тело сообщения в фиксированный контейнер с атрибутом «type». Затем вы можете десериализовать контейнер и определить, как обрабатывать десериализацию фактического содержащегося сообщения на основе атрибута «type».

например.

<dataContainer type="XYZ"> 
<!-- put your actual message content here inside a CDATA section --> 
</dataContainer> 
1

Обычно, если у вас есть несколько типов сообщений, вы используете несколько очередей. Это позволяет избежать любых возможных проблем, связанных с возможностью отмены очереди только определенных типов сообщений и любой возможной путаницы по типу обрабатываемого сообщения.

Если у вас уже есть ваша инфраструктура, работающая с одной очередью, добавление другого должно быть минимальным.

+1

Это работает только в том случае, если порядок сообщений по всем типам неважен –

Смежные вопросы