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 上设置。 When you set a MessagePropertyFilter Boolean-valued member to false, you prevent the information of the associated Message property from being retrieved by the MessageQueue.

有多个筛选器属性不是布尔值。 它们是获取或设置默认大小的 Message.Body整数值, Message.ExtensionMessage.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()

将公共消息队列属性的筛选器值设置为 true,并将整数值属性设置为它们的默认值。

ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于

另请参阅