Практическое руководство. Назначение модуля форматирования для полученных сообщений
Обновлен: Ноябрь 2007
Необходимо указать объект модуля форматирования, который будет использоваться для извлечения сообщений из очереди. Форматер определяет способ десериализации сообщения при его извлечении из очереди. В зависимости от используемого типа форматера, для настройки его работы может понадобиться установка дополнительных свойств.
По умолчанию для большинства операций используется объект XmlMessageFormatter. Дополнительные сведения о доступных форматерах см. в разделе Сериализация сообщений. Сведения о свойствах, уникальных для объекта XmlMessageFormatter см. в разделе Знакомство с чтением и получением сообщений.
Форматер можно задать в коде[;;rad> или в окне Свойства.<]. Кроме того, форматер можно настроить на очередь или на сообщение. Форматер настраивается на очередь, если планируется прямое обращение к сообщениям очереди, как в следующем примере:
Console.WriteLine(CStr(MessageQueue1.Receive().Body))
Console.WriteLine(MessageQueue1.Receive().Body.ToString());
Форматер настраивается на сообщение, если планируется извлечение содержимого очереди через объект сообщения:
Message1 = MessageQueue1.Receive()
message1 = messageQueue1.Receive();
Определение модуля форматирования в окне "Свойства"
Создайте и настройте экземпляр компонента MessageQueue. Дополнительные сведения см. в разделе Практическое руководство. Создание экземпляров компонента MessageQueue.
В конструкторе щелкните экземпляр компонента MessageQueue и перейдите в окно Свойства.
Присвойте соответствующее значение свойству Formatter.
При выборе объекта XmlMessageFormatter или объекта BinaryMessageFormatter разверните свойство и установите необходимые подсвойства для настройки модуля форматирования.
Определение модуля форматирования программными средствами
Создайте и настройте экземпляр компонента MessageQueue. Дополнительные сведения см. в разделе Практическое руководство. Создание экземпляров компонента MessageQueue.
В редакторе кода создайте объект форматера типа XmlMessageFormatter, ActiveXMessageFormatter или BinaryMessageFormatter.
Задайте для модуля форматирования необходимые свойства.
Извлечь сообщение.
Например, в приведенном ниже фрагменте кода показано, как создать и настроить компонент, использующий объект XmlMessageFormatter для извлечения сообщения из общей очереди с именем MyQueue.
Dim mq As New System.Messaging.MessageQueue(".\MyQueue") Dim formatter As System.Messaging.XmlMessageFormatter = _ CType(mq.Formatter, System.Messaging.XmlMessageFormatter) formatter.TargetTypeNames = New String() {"System.String"} Dim m As System.Messaging.Message = mq.Receive(New TimeSpan(0, 0, 3))
System.Messaging.MessageQueue mq = new System.Messaging.MessageQueue(".\\MyQueue"); string[] types = { "System.String" }; ((System.Messaging.XmlMessageFormatter)mq.Formatter).TargetTypeNames = types; System.Messaging.Message m = mq.Receive(new TimeSpan(0, 0, 3));
См. также
Задачи
Практическое руководство. Получение сообщений программным способом