MessagePropertyFilter 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
控制并选择从消息队列查看或接收消息时检索的属性。
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 上设置的。 将布尔值成员设置为 MessagePropertyFilterfalse时,会阻止 检索关联 Message 属性 MessageQueue的信息。
有几个不是布尔值的筛选器属性。 它们是获取或设置 、 Message.Extension或 Message.Label的默认大小的Message.Body整数值。
检索一组有限的属性有助于提高性能,因为从队列传输的数据量较小。
在 上 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() |
将所有布尔型筛选器的值设置为 |
| Clone() |
创建对象的浅表副本。 |
| Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
| GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
| GetType() |
获取当前实例的 Type。 (继承自 Object) |
| MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
| SetAll() |
指定在接收消息时检索消息的所有属性。 |
| SetDefaults() |
将公共消息队列属性的筛选器值设置为 |
| ToString() |
返回表示当前对象的字符串。 (继承自 Object) |