Поделиться через


Практическое руководство. Назначение модуля форматирования для полученных сообщений

Обновлен: Ноябрь 2007

Необходимо указать объект модуля форматирования, который будет использоваться для извлечения сообщений из очереди. Форматер определяет способ десериализации сообщения при его извлечении из очереди. В зависимости от используемого типа форматера, для настройки его работы может понадобиться установка дополнительных свойств.

По умолчанию для большинства операций используется объект XmlMessageFormatter. Дополнительные сведения о доступных форматерах см. в разделе Сериализация сообщений. Сведения о свойствах, уникальных для объекта XmlMessageFormatter см. в разделе Знакомство с чтением и получением сообщений.

Форматер можно задать в коде[;;rad> или в окне Свойства.<]. Кроме того, форматер можно настроить на очередь или на сообщение. Форматер настраивается на очередь, если планируется прямое обращение к сообщениям очереди, как в следующем примере:

Console.WriteLine(CStr(MessageQueue1.Receive().Body))
     Console.WriteLine(MessageQueue1.Receive().Body.ToString());

Форматер настраивается на сообщение, если планируется извлечение содержимого очереди через объект сообщения:

Message1 = MessageQueue1.Receive()
     message1 = messageQueue1.Receive();

Определение модуля форматирования в окне "Свойства"

  1. Создайте и настройте экземпляр компонента MessageQueue. Дополнительные сведения см. в разделе Практическое руководство. Создание экземпляров компонента MessageQueue.

  2. В конструкторе щелкните экземпляр компонента MessageQueue и перейдите в окно Свойства.

  3. Присвойте соответствующее значение свойству Formatter.

  4. При выборе объекта XmlMessageFormatter или объекта BinaryMessageFormatter разверните свойство и установите необходимые подсвойства для настройки модуля форматирования.

Определение модуля форматирования программными средствами

  1. Создайте и настройте экземпляр компонента MessageQueue. Дополнительные сведения см. в разделе Практическое руководство. Создание экземпляров компонента MessageQueue.

  2. В редакторе кода создайте объект форматера типа XmlMessageFormatter, ActiveXMessageFormatter или BinaryMessageFormatter.

  3. Задайте для модуля форматирования необходимые свойства.

  4. Извлечь сообщение.

    Например, в приведенном ниже фрагменте кода показано, как создать и настроить компонент, использующий объект 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));
    
    

См. также

Задачи

Практическое руководство. Получение сообщений программным способом

Основные понятия

Знакомство с чтением и получением сообщений