Condividi tramite


Procedura: specificare il formattatore per i messaggi recuperati

Aggiornamento: novembre 2007

È necessario indicare l'oggetto formattatore che si desidera utilizzare per recuperare un messaggio da una coda. Un formattatore consente di specificare la modalità di deserializzazione di un messaggio quando viene rimosso dalla coda. A seconda del tipo di formattatore utilizzato, è necessario impostare proprietà aggiuntive per specificare come il formattatore deve procedere.

Per impostazione predefinita, si utilizza la classe XmlMessageFormatter per la maggior parte delle operazioni. Per ulteriori informazioni sui formattatori disponibili, vedere Serializzazione dei messaggi. Per informazioni sulle proprietà univoche per l'oggetto XmlMessageFormatter, vedere Introduzione alla lettura e al recupero di messaggi.

È possibile specificare il formattatore nel codice o nella finestra Proprietà, nonché nella coda o nel messaggio. Il formattatore viene impostato nella coda quando si pianifica di accedere direttamente ai messaggi della coda, come nel codice riportato di seguito.

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

Il formattatore viene impostato nel messaggio quando si intende recuperare il contenuto di una coda mediante l'oggetto messaggio:

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

Per specificare il formattatore nella finestra Proprietà

  1. Creare e configurare l'istanza del componente MessageQueue. Per ulteriori informazioni, vedere Procedura: creare istanze del componente MessageQueue.

  2. Nella finestra di progettazione fare clic sull'istanza del componente MessageQueue, quindi accedere alla finestra Proprietà.

  3. Impostare la proprietà Formatter sul valore appropriato.

  4. Se si sceglie l'oggetto XmlMessageFormatter oBinaryMessageFormatter, espandere la proprietà e impostare le sottoproprietà necessarie per la configurazione del formattatore.

Per specificare il formattatore a livello di codice

  1. Creare e configurare l'istanza del componente MessageQueue. Per ulteriori informazioni, vedere Procedura: creare istanze del componente MessageQueue.

  2. Nell'Editor di codice creare un oggetto formattatore di tipo XmlMessageFormatter, ActiveXMessageFormatter o BinaryMessageFormatter.

  3. Impostare le proprietà necessarie per il formattatore.

  4. Recuperare il messaggio.

    Nel codice riportato di seguito viene ad esempio illustrato come creare e configurare un componente che utilizza l'oggetto XmlMessageFormatter per recuperare un messaggio da una coda pubblica denominata 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));
    
    

Vedere anche

Attività

Procedura: ricevere messaggi a livello di codice

Concetti

Introduzione alla lettura e al recupero di messaggi