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) |