MessagePropertyFilter Class
Assembly: System.Messaging (in system.messaging.dll)
Setting the MessagePropertyFilter on a MessageQueue instance controls the set of properties that are retrieved when peeking or receiving a message. The filter is set on the instance of MessageQueue that retrieves the message information. 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.
There are several filter properties that are not Boolean values. They are integer values that get or set the default sizes of the Message.Body, Message.Extension, or Message.Label.
Retrieving a limited set of properties helps improve performance because smaller amounts of data are transferred from the queue.
When setting a property on MessagePropertyFilter, you are only indicating whether that property is retrieved when a message is received or peeked. You are not changing the associated property value for the Message.
The MessagePropertyFilter constructor sets all filter properties to their default values, which for the Boolean values is false. See the constructor topic for the defaults assigned to the integer-valued properties.
The following code example sends two messages of different priorities to the queue, and retrieves them subsequently.
Imports System 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 'Main ' 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 'SendMessage ' 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 'ReceiveMessage End Class 'MyNewQueue
package MyProject;
import System.*;
import System.Messaging.*;
/// <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(String[] args)
{
// 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;
} //main
//**************************************************
// 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.CompareTo(MessagePriority.Normal) > 0) {
myMessage.set_Body("High Priority: " + messageBody);
}
else {
myMessage.set_Body(messageBody);
}
// Set the priority of the message.
myMessage.set_Priority(priority);
// Send the Order to the queue.
myQueue.Send(myMessage);
return;
} //SendMessage
//**************************************************
// 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.get_MessageReadPropertyFilter().set_Priority(true);
// Set the formatter to indicate body contains a string.
myQueue.set_Formatter(new XmlMessageFormatter(new Type[]
{ String.class.ToType() }));
try {
// Receive and format the message.
Message myMessage = myQueue.Receive();
// Display message information.
Console.WriteLine("Priority: " + myMessage.get_Priority().ToString());
Console.WriteLine("Body: " + myMessage.get_Body().ToString());
}
catch (MessageQueueException exp) {
// Handle Message Queuing exceptions.
}
// Handle invalid serialization format.
catch (InvalidOperationException e) {
Console.WriteLine(e.get_Message());
}
// Catch other exceptions as necessary.
return;
} //ReceiveMessage
} //MyNewQueue
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.