HOW TO:指定已擷取訊息的格式子

更新:2007 年 11 月

您必須指定您要用來從佇列擷取訊息的格式子物件。格式子將指示從佇列移除訊息時如何將其還原序列化。依照您使用哪種格式子而定,您可能需要設定其他屬性來指定格式子應如何運作。

依預設,大部分的作業會使用 XmlMessageFormatter。如需您可以使用之格式子的詳細資訊,請參閱訊息序列化。如需 XmlMessageFormatter 物件特有屬性的相關資訊,請參閱讀取和擷取訊息簡介

您可以在程式碼中或在 [屬性] 視窗中指定格式子。除此之外,您可以在佇列上或訊息上設定格式子。當您要直接存取佇列的訊息時,您可在佇列上設定格式子,如下列程式碼所示:

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

當您要透過訊息物件擷取佇列的內容,您可以在訊息上設定格式子:

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

若要在屬性視窗中指定格式子

  1. 建立並設定您的 MessageQueue 元件執行個體。如需詳細資訊,請參閱 HOW TO:建立 MessageQueue 元件執行個體

  2. 在設計工具中,按一下 MessageQueue 執行個體,然後存取 [屬性] 視窗。

  3. Formatter 屬性設定為適當值。

  4. 如果您選擇 XmlMessageFormatter 物件或 BinaryMessageFormatter 物件,請展開屬性並設定必要的子屬性,以設定您的格式子。

若要利用程式指定格式子

  1. 建立並設定您的 MessageQueue 元件執行個體。如需詳細資訊,請參閱 HOW TO:建立 MessageQueue 元件執行個體

  2. 在 [程式碼編輯器] 中,建立型別為 XmlMessageFormatterActiveXMessageFormatterBinaryMessageFormatter 的格式子物件。

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

請參閱

工作

HOW TO:以程式設計方式接收訊息

概念

讀取和擷取訊息簡介