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


MessagePropertyFilter Класс

Определение

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

public ref class MessagePropertyFilter
public ref class MessagePropertyFilter : ICloneable
[System.ComponentModel.TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))]
public class MessagePropertyFilter
[System.ComponentModel.TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))]
public class MessagePropertyFilter : ICloneable
[<System.ComponentModel.TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))>]
type MessagePropertyFilter = class
[<System.ComponentModel.TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))>]
type MessagePropertyFilter = class
    interface ICloneable
Public Class MessagePropertyFilter
Public Class MessagePropertyFilter
Implements ICloneable
Наследование
MessagePropertyFilter
Атрибуты
Реализации

Примеры

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


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

using namespace System;
using namespace System::Messaging;

/// <summary>
/// Provides a container class for the example.
/// </summary>
ref class MyNewQueue
{
   //**************************************************
   // Sends a string message to a queue.
   //**************************************************
public:
   void SendMessage( MessagePriority priority, String^ messageBody )
   {
      // Connect to a queue on the local computer.
      MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" );

      // Create a new message.
      Message^ myMessage = gcnew Message;
      if ( priority > MessagePriority::Normal )
      {
         myMessage->Body = "High Priority: {0}",messageBody;
      }
      else
      {
         myMessage->Body = messageBody;
      }

      // Set the priority of the message.
      myMessage->Priority = priority;

      // Send the Order to the queue.
      myQueue->Send( myMessage );

      return;
   }

   //**************************************************
   // Receives a message.
   //**************************************************
   void ReceiveMessage()
   {
      // Connect to the a queue on the local computer.
      MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" );

      // Set the queue to read the priority. By default, it
      // is not read.
      myQueue->MessageReadPropertyFilter->Priority = true;

      // Set the formatter to indicate body contains a String^.
      array<Type^>^ p = gcnew array<Type^>(1);
      p[ 0 ] = String::typeid;
      myQueue->Formatter = gcnew XmlMessageFormatter( p );
      try
      {
         // Receive and format the message. 
         Message^ myMessage = myQueue->Receive();

         // Display message information.
         Console::WriteLine( "Priority: {0}",
            myMessage->Priority );
         Console::WriteLine( "Body: {0}",
            myMessage->Body );
      }
      catch ( MessageQueueException^ ) 
      {
         // Handle Message Queuing exceptions.
      }
      // Handle invalid serialization format.
      catch ( InvalidOperationException^ e ) 
      {
         Console::WriteLine( e->Message );
      }

      // Catch other exceptions as necessary.

      return;
   }
};

//**************************************************
// Provides an entry point into the application.
//		 
// This example sends and receives a message from
// a queue.
//**************************************************
int main()
{
   // Create a new instance of the class.
   MyNewQueue^ myNewQueue = gcnew MyNewQueue;

   // Send messages to a queue.
   myNewQueue->SendMessage( MessagePriority::Normal, "First Message Body." );
   myNewQueue->SendMessage( MessagePriority::Highest, "Second Message Body." );

   // Receive messages from a queue.
   myNewQueue->ReceiveMessage();
   myNewQueue->ReceiveMessage();

   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 sends and receives a message from
        // a queue.
        //**************************************************

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

            // Send messages to a queue.
            myNewQueue.SendMessage(MessagePriority.Normal, "First Message Body.");
            myNewQueue.SendMessage(MessagePriority.Highest, "Second Message Body.");

            // Receive messages from a queue.
            myNewQueue.ReceiveMessage();
            myNewQueue.ReceiveMessage();

            return;
        }

        //**************************************************
        // Sends a string message to a queue.
        //**************************************************
        
        public void SendMessage(MessagePriority priority, string messageBody)
        {

            // Connect to a queue on the local computer.
            MessageQueue myQueue = new MessageQueue(".\\myQueue");

            // Create a new message.
            Message myMessage = new Message();

            if(priority > MessagePriority.Normal)
            {
                myMessage.Body = "High Priority: " + messageBody;
            }
            else
            {
                myMessage.Body = messageBody;
            }

            // Set the priority of the message.
            myMessage.Priority = priority;

            // Send the Order to the queue.
            myQueue.Send(myMessage);

            return;
        }

        //**************************************************
        // Receives a message.
        //**************************************************
        
        public  void ReceiveMessage()
        {
            // Connect to the a queue on the local computer.
            MessageQueue myQueue = new MessageQueue(".\\myQueue");

            // Set the queue to read the priority. By default, it
            // is not read.
            myQueue.MessageReadPropertyFilter.Priority = true;

            // Set the formatter to indicate body contains a string.
            myQueue.Formatter = new XmlMessageFormatter(new Type[]
                {typeof(string)});
            
            try
            {
                // Receive and format the message.
                Message myMessage =	myQueue.Receive();

                // Display message information.
                Console.WriteLine("Priority: " +
                    myMessage.Priority.ToString());
                Console.WriteLine("Body: " +
                    myMessage.Body.ToString());
            }
            
            catch (MessageQueueException)
            {
                // Handle Message Queuing exceptions.
            }

            // Handle invalid serialization format.
            catch (InvalidOperationException e)
            {
                Console.WriteLine(e.Message);
            }
            
            // Catch other exceptions as necessary.

            return;
        }
    }
}
Imports System.Messaging


'Provides a container class for the example.
Public Class MyNewQueue
      
      

      ' Provides an entry point into the application.
      '		 
      ' This example sends and receives a message from
      ' a queue.

      Public Shared Sub Main()
         ' Create a new instance of the class.
         Dim myNewQueue As New MyNewQueue()
         
         ' Send messages to a queue.
         myNewQueue.SendMessage(MessagePriority.Normal, "First Message Body.")
         myNewQueue.SendMessage(MessagePriority.Highest, "Second Message Body.")
         
         ' Receive messages from a queue.
         myNewQueue.ReceiveMessage()
         myNewQueue.ReceiveMessage()
         
         Return
      End Sub
      
      
      

      ' Sends a string message to a queue.

      Public Sub SendMessage(priority As MessagePriority, messageBody As String)
         
         ' Connect to a queue on the local computer.
         Dim myQueue As New MessageQueue(".\myQueue")
         
         ' Create a new message.
         Dim myMessage As New Message()
         
         If priority > MessagePriority.Normal Then
            myMessage.Body = "High Priority: " + messageBody
         Else
            myMessage.Body = messageBody
         End If 
         ' Set the priority of the message.
         myMessage.Priority = priority
         
         
         ' Send the Order to the queue.
         myQueue.Send(myMessage)
         
         Return
      End Sub
      
      
      

      ' Receives a message.

      Public Sub ReceiveMessage()
         ' Connect to the a queue on the local computer.
         Dim myQueue As New MessageQueue(".\myQueue")
         
         ' Set the queue to read the priority. By default, it
         ' is not read.
         myQueue.MessageReadPropertyFilter.Priority = True
         
         ' Set the formatter to indicate body contains a string.
         myQueue.Formatter = New XmlMessageFormatter(New Type() {GetType(String)})
         
         Try
            ' Receive and format the message. 
            Dim myMessage As Message = myQueue.Receive()
            
            ' Display message information.
            Console.WriteLine(("Priority: " + myMessage.Priority.ToString()))
            Console.WriteLine(("Body: " + myMessage.Body.ToString()))
         
         
         
         ' Handle invalid serialization format.
         Catch e As InvalidOperationException
            Console.WriteLine(e.Message)
         End Try
         
         ' Catch other exceptions as necessary.
         Return
      End Sub
   End Class

Комментарии

Установка в MessagePropertyFilter экземпляре MessageQueue управляет набором свойств, которые извлекаются при просмотре или получении сообщения. Фильтр задается для экземпляра , MessageQueue который извлекает сведения о сообщении. Если для элемента falseс логическим значением задано MessagePropertyFilter значение , необходимо запретить получение сведений о связанном Message свойстве MessageQueueобъектом .

Существует несколько свойств фильтра, которые не являются логическими значениями. Это целочисленные значения, которые получают или задают размеры Message.Bodyпо умолчанию для , Message.Extensionили Message.Label.

Получение ограниченного набора свойств помогает повысить производительность, так как из очереди передаются меньшие объемы данных.

При задании свойства в MessagePropertyFilterвы указываете, извлекается ли это свойство только при получении или просмотре сообщения. Значение связанного свойства для Messageне изменяется.

Конструктор MessagePropertyFilter присваивает всем свойствам фильтра значения по умолчанию, которые для логических значений — false. Сведения о значениях по умолчанию, назначенных целочисленным свойствам, см. в разделе конструктора.

Конструкторы

MessagePropertyFilter()

Инициализирует новый экземпляр класса MessagePropertyFilter и устанавливает значения по умолчанию для всех свойств.

Свойства

AcknowledgeType

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

Acknowledgment

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

AdministrationQueue

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

AppSpecific

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

ArrivedTime

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

AttachSenderId

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

Authenticated

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

AuthenticationProviderName

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

AuthenticationProviderType

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

Body

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

ConnectorType

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

CorrelationId

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

DefaultBodySize

Получает или задает размер (в байтах) стандартного буфера тела сообщения.

DefaultExtensionSize

Получает или задает размер (в байтах) стандартного буфера расширения.

DefaultLabelSize

Получает или задает размер (в байтах) стандартного буфера метки.

DestinationQueue

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

DestinationSymmetricKey

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

DigitalSignature

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

EncryptionAlgorithm

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

Extension

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

HashAlgorithm

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

Id

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

IsFirstInTransaction

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

IsLastInTransaction

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

Label

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

LookupId

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

MessageType

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

Priority

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

Recoverable

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

ResponseQueue

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

SenderCertificate

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

SenderId

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

SenderVersion

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

SentTime

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

SourceMachine

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

TimeToBeReceived

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

TimeToReachQueue

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

TransactionId

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

TransactionStatusQueue

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

UseAuthentication

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

UseDeadLetterQueue

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

UseEncryption

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

UseJournalQueue

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

UseTracing

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

Методы

ClearAll()

Устанавливает значения логических переменных фильтра равными false, чтобы никакие свойства сообщения не извлекались при его приеме.

Clone()

Создает неполную копию объекта.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
SetAll()

Указывает, что при приеме сообщения извлекаются все его свойства.

SetDefaults()

Устанавливает значения фильтра общих свойств Message Queuing равными true, а свойства, описываемые целочисленными величинами, равными их значениям по умолчанию.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

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

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