次の方法で共有


方法 : 取得したメッセージに対する書式指定ツールを指定する

更新 : 2007 年 11 月

キューからメッセージを取得するには、使用する書式指定ツール オブジェクトを指定する必要があります。書式指定ツールは、メッセージをキューから削除するときに逆シリアル化する方法を決定します。使用する書式指定ツールの種類によっては、書式指定ツールが処理を行う方法を指定するために、追加のプロパティを設定する必要があります。

既定では、ほとんどの操作に対して XmlMessageFormatter を使用します。使用可能な書式指定ツールの詳細については、「メッセージのシリアル化」を参照してください。XmlMessageFormatter オブジェクトに固有のプロパティについては、「メッセージの読み取りと取得の概要」を参照してください。

書式指定ツールは、コードまたは [プロパティ] ウィンドウで指定できます。また、書式指定ツールはキューまたはメッセージに対して設定できます。キューのメッセージに直接アクセスする場合には、次のコードのように、キューに対して書式指定ツールを設定します。

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. コード エディタで、XmlMessageFormatterActiveXMessageFormatter、または BinaryMessageFormatter 型の書式指定ツール オブジェクトを作成します。

  3. 書式指定ツールに必要なプロパティを設定します。

  4. メッセージを取得します。

    たとえば次のコードでは、MyQueue というパブリック キューからメッセージを取得するために、XmlMessageFormatter オブジェクトを使用するコンポーネントを作成して設定します。

    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));
    
    

参照

処理手順

方法 : プログラムでメッセージを取得する

概念

メッセージの読み取りと取得の概要