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


MessageQueue.MessageReadPropertyFilter Свойство

Определение

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

public:
 property System::Messaging::MessagePropertyFilter ^ MessageReadPropertyFilter { System::Messaging::MessagePropertyFilter ^ get(); void set(System::Messaging::MessagePropertyFilter ^ value); };
[System.ComponentModel.Browsable(false)]
[System.Messaging.MessagingDescription("MQ_MessageReadPropertyFilter")]
public System.Messaging.MessagePropertyFilter MessageReadPropertyFilter { get; set; }
[<System.ComponentModel.Browsable(false)>]
[<System.Messaging.MessagingDescription("MQ_MessageReadPropertyFilter")>]
member this.MessageReadPropertyFilter : System.Messaging.MessagePropertyFilter with get, set
Public Property MessageReadPropertyFilter As MessagePropertyFilter

Значение свойства

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

Атрибуты

Исключения

Значение фильтра — null.

Примеры

В следующем примере кода используется для MessageReadPropertyFilter ограничения полученных свойств сообщения.

#using <system.dll>
#using <system.messaging.dll>

using namespace System;
using namespace System::Messaging;
ref class MyNewQueue
{
public:

   //*************************************************
   // Retrieves the default properties for a Message.
   //*************************************************
   void RetrieveDefaultProperties()
   {
      // Connect to a message queue.
      MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" );

      // Specify to retrieve the default properties only.
      myQueue->MessageReadPropertyFilter->SetDefaults();

      // Set the formatter for the Message.
      array<Type^>^p = gcnew array<Type^>(1);
      p[ 0 ] = String::typeid;
      myQueue->Formatter = gcnew XmlMessageFormatter( p );

      // Receive the first message in the queue.
      Message^ myMessage = myQueue->Receive();

      // Display selected properties.
      Console::WriteLine( "Label: {0}", myMessage->Label );
      Console::WriteLine( "Body: {0}", static_cast<String^>(myMessage->Body) );
      return;
   }


   //*************************************************
   // Retrieves all properties for a Message.
   //*************************************************
   void RetrieveAllProperties()
   {
      // Connect to a message queue.
      MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" );

      // Specify to retrieve all properties.
      myQueue->MessageReadPropertyFilter->SetAll();

      // Set the formatter for the Message.
      array<Type^>^p = gcnew array<Type^>(1);
      p[ 0 ] = String::typeid;
      myQueue->Formatter = gcnew XmlMessageFormatter( p );

      // Receive the first message in the queue.
      Message^ myMessage = myQueue->Receive();

      // Display selected properties.
      Console::WriteLine( "Encryption algorithm: {0}", myMessage->EncryptionAlgorithm.ToString() );
      Console::WriteLine( "Body: {0}", myMessage->Body );
      return;
   }

   //*************************************************
   // Retrieves application-specific properties for a
   // Message.
   //*************************************************
   void RetrieveSelectedProperties()
   {
      // Connect to a message queue.
      MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" );

      // Specify to retrieve selected properties.
      MessagePropertyFilter^ myFilter = gcnew MessagePropertyFilter;
      myFilter->ClearAll();

      // The following list is a random subset of available properties.
      myFilter->Body = true;
      myFilter->Label = true;
      myFilter->MessageType = true;
      myFilter->Priority = true;
      myQueue->MessageReadPropertyFilter = myFilter;

      // Set the formatter for the Message.
      array<Type^>^p = gcnew array<Type^>(1);
      p[ 0 ] = String::typeid;
      myQueue->Formatter = gcnew XmlMessageFormatter( p );

      // Receive the first message in the queue.
      Message^ myMessage = myQueue->Receive();

      // Display selected properties.
      Console::WriteLine( "Message type: {0}", myMessage->MessageType.ToString() );
      Console::WriteLine( "Priority: {0}", myMessage->Priority.ToString() );
      return;
   }
};


//*************************************************
// Provides an entry point into the application.
//         
// This example retrieves specific groups of Message
// properties.
//*************************************************
int main()
{
   // Create a new instance of the class.
   MyNewQueue^ myNewQueue = gcnew MyNewQueue;

   // Retrieve specific sets of Message properties.
   myNewQueue->RetrieveDefaultProperties();
   myNewQueue->RetrieveAllProperties();
   myNewQueue->RetrieveSelectedProperties();
   return 0;
}
using System;
using System.Messaging;

namespace MyProject
{
    /// <summary>
    /// Provides a container class for the example.
    /// </summary>
    public class MyNewQueue
    {

        //**************************************************
        // Provides an entry point into the application.
        //		
        // This example retrieves specific groups of Message
        // properties.
        //**************************************************

        public static void Main()
        {
            // Create a new instance of the class.
            MyNewQueue myNewQueue = new MyNewQueue();

            // Retrieve specific sets of Message properties.
            myNewQueue.RetrieveDefaultProperties();
            myNewQueue.RetrieveAllProperties();
            myNewQueue.RetrieveSelectedProperties();

            return;
        }

        //**************************************************
        // Retrieves the default properties for a Message.
        //**************************************************
        
        public void RetrieveDefaultProperties()
        {

            // Connect to a message queue.
            MessageQueue myQueue = new MessageQueue(".\\myQueue");

            // Specify to retrieve the default properties only.
            myQueue.MessageReadPropertyFilter.SetDefaults();

            // Set the formatter for the Message.
            myQueue.Formatter = new XmlMessageFormatter(new Type[]
                {typeof(String)});

            // Receive the first message in the queue.
            Message myMessage = myQueue.Receive();

            // Display selected properties.
            Console.WriteLine("Label: " + myMessage.Label);
            Console.WriteLine("Body: " + (String)myMessage.Body);
    
            return;
        }

        //**************************************************
        // Retrieves all properties for a Message.
        //**************************************************
        
        public void RetrieveAllProperties()
        {

            // Connect to a message queue.
            MessageQueue myQueue = new MessageQueue(".\\myQueue");

            // Specify to retrieve all properties.
            myQueue.MessageReadPropertyFilter.SetAll();

            // Set the formatter for the Message.
            myQueue.Formatter = new XmlMessageFormatter(new Type[]
                {typeof(String)});

            // Receive the first message in the queue.
            Message myMessage = myQueue.Receive();

            // Display selected properties.
            Console.WriteLine("Encryption algorithm: " +
                myMessage.EncryptionAlgorithm.ToString());
            Console.WriteLine("Body: " + (String)myMessage.Body);
    
            return;
        }

        //**************************************************
        // Retrieves application-specific properties for a
        // Message.
        //**************************************************
        
        public void RetrieveSelectedProperties()
        {
            // Connect to a message queue.
            MessageQueue myQueue = new MessageQueue(".\\myQueue");

            // Specify to retrieve selected properties.
            MessagePropertyFilter myFilter = new
                MessagePropertyFilter();
            myFilter.ClearAll();
            // The following list is a random subset of available properties.
            myFilter.Body = true;
            myFilter.Label = true;
            myFilter.MessageType = true;
            myFilter.Priority = true;
            myQueue.MessageReadPropertyFilter = myFilter;

            // Set the formatter for the Message.
            myQueue.Formatter = new XmlMessageFormatter(new Type[]
                {typeof(String)});

            // Receive the first message in the queue.
            Message myMessage = myQueue.Receive();

            // Display selected properties.
            Console.WriteLine("Message type: " +
                myMessage.MessageType.ToString());
            Console.WriteLine("Priority: " +
                myMessage.Priority.ToString());
    
            return;
            }
    }
}
Imports System.Messaging

Public Class MyNewQueue


        
        ' Provides an entry point into the application.
        '		 
        ' This example retrieves specific groups of Message
        ' properties.
        

        Public Shared Sub Main()

            ' Create a new instance of the class.
            Dim myNewQueue As New MyNewQueue()

            ' Retrieve specific sets of Message properties.
            myNewQueue.RetrieveDefaultProperties()
            myNewQueue.RetrieveAllProperties()
            myNewQueue.RetrieveSelectedProperties()

            Return

        End Sub


        
        ' Retrieves the default properties for a Message.
        

        Public Sub RetrieveDefaultProperties()

            ' Connect to a message queue.
            Dim myQueue As New MessageQueue(".\myQueue")

            ' Specify to retrieve the default properties only.
            myQueue.MessageReadPropertyFilter.SetDefaults()

            ' Set the formatter for the Message.
            myQueue.Formatter = New XmlMessageFormatter(New Type() _
                {GetType([String])})

            ' Receive the first message in the queue.
            Dim myMessage As Message = myQueue.Receive()

            ' Display selected properties.
            Console.WriteLine(("Label: " + myMessage.Label))
            Console.WriteLine(("Body: " + CType(myMessage.Body, _
                [String])))

            Return

        End Sub


        
        ' Retrieves all properties for a Message.
        

        Public Sub RetrieveAllProperties()

            ' Connect to a message queue.
            Dim myQueue As New MessageQueue(".\myQueue")

            ' Specify to retrieve all properties.
            myQueue.MessageReadPropertyFilter.SetAll()

            ' Set the formatter for the Message.
            myQueue.Formatter = New XmlMessageFormatter(New Type() _
                {GetType([String])})

            ' Receive the first message in the queue.
            Dim myMessage As Message = myQueue.Receive()

            ' Display selected properties.
            Console.WriteLine(("Encryption algorithm: " + _
                myMessage.EncryptionAlgorithm.ToString()))
            Console.WriteLine(("Body: " + CType(myMessage.Body, _
                [String])))

            Return

        End Sub


        
        ' Retrieves application-specific properties for a
        ' Message.
        

        Public Sub RetrieveSelectedProperties()

            ' Connect to a message queue.
            Dim myQueue As New MessageQueue(".\myQueue")

            ' Specify to retrieve selected properties.
            Dim myFilter As New MessagePropertyFilter()
            myFilter.ClearAll()
            ' The following list is a random subset of properties.
            myFilter.Body = True
            myFilter.Label = True
            myFilter.MessageType = True
            myFilter.Priority = True
            myQueue.MessageReadPropertyFilter = myFilter

            ' Set the formatter for the Message.
            myQueue.Formatter = New XmlMessageFormatter(New Type() _
                {GetType([String])})

            ' Receive the first message in the queue.
            Dim myMessage As Message = myQueue.Receive()

            ' Display selected properties.
            Console.WriteLine(("Message type: " + _
                myMessage.MessageType.ToString()))
            Console.WriteLine(("Priority: " + _
                myMessage.Priority.ToString()))

            Return

        End Sub

End Class

Комментарии

Этот фильтр представляет собой набор логических значений, ограничивающих свойства сообщений, которые MessageQueue получает или просматривает. Когда объект MessageQueue получает или просматривает сообщение из очереди сервера, он получает только те свойства, для которых MessageReadPropertyFilter имеет значение true.

Ниже приведены начальные MessageReadPropertyFilter значения свойств для свойства . Эти параметры идентичны вызову SetDefaultsMessagePropertyFilterдля .

Свойство. Значение по умолчанию
Acknowledgment false
AcknowledgeType false
AdministrationQueue true
AppSpecific false
ArrivedTime true
AttachSenderId false
Authenticated false
AuthenticationProviderName false
AuthenticationProviderType false
Body true
ConnectorType false
CorrelationId true
DefaultBodySize 1024 байта
DefaultExtensionSize 255 байт
DefaultLabelSize 255 байт
DestinationQueue false
DestinationSymmetricKey false
DigitalSignature false
EncryptionAlgorithm false
Extension false
HashAlgorithm false
Id true
IsFirstInTransaction false
IsLastInTransaction false
Label true
MessageType false
Priority false
Recoverable false
ResponseQueue true
SenderCertificate false
SenderId false
SenderVersion false
SentTime true
SourceMachine false
TimeToBeReceived false
TimeToReachQueue false
TransactionId false
TransactionStatusQueue false
UseAuthentication false
UseDeadLetterQueue false
UseEncryption false
UseJournalQueue false
UseTracing false

В следующей таблице показано, доступно ли это свойство в различных режимах рабочей группы.

Режим рабочей группы Доступно
Локальный компьютер Да
Имя локального компьютера и прямого формата Да
Удаленный компьютер Да
Имя удаленного компьютера и прямого формата Да

Применяется к

См. также раздел