本文整理汇总了C#中System.Messaging.MessageQueue.PeekByCorrelationId方法的典型用法代码示例。如果您正苦于以下问题:C# MessageQueue.PeekByCorrelationId方法的具体用法?C# MessageQueue.PeekByCorrelationId怎么用?C# MessageQueue.PeekByCorrelationId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Messaging.MessageQueue
的用法示例。
在下文中一共展示了MessageQueue.PeekByCorrelationId方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ReceiveAcknowledgment
//get acknowledgement if message successfully received from the queue.
public void ReceiveAcknowledgment(string messageId, string queuePath)
{
bool found = false;
MessageQueue queue = new MessageQueue(queuePath);
queue.MessageReadPropertyFilter.CorrelationId = true;
queue.MessageReadPropertyFilter.Acknowledgment = true;
try
{
while (queue.PeekByCorrelationId(messageId) != null)
{
Message myAcknowledgmentMessage = queue.ReceiveByCorrelationId(messageId);
// Output acknowledgment message information.
Console.WriteLine("Acknowledgment Type: " + myAcknowledgmentMessage.Acknowledgment.ToString());
found = true;
}
}
catch (InvalidOperationException e)
{
if (found == false)
{
Console.WriteLine(e.Message);
}
}
catch (NullReferenceException ex)
{
Console.WriteLine(ex.Message);
}
}
示例2: PeekFromStatusQueue
// Peeks message (first/application-specified correlationId) from status queue
private Message PeekFromStatusQueue(string correlationId)
{
string statusQueuePath = "FormatName:DIRECT=OS:" + this.queue.MachineName + @"\" + Parameters.STATUS_QUEUE;
MessageQueue statusQueue = new MessageQueue(statusQueuePath);
statusQueue.Formatter = new BinaryMessageFormatter();
statusQueue.MessageReadPropertyFilter.AppSpecific = true;
statusQueue.MessageReadPropertyFilter.CorrelationId = true;
Message statusMessage = null;
try
{
if (correlationId == null)
{
statusMessage = statusQueue.PeekByLookupId(MessageLookupAction.First, 0);
}
else
{
statusMessage = statusQueue.PeekByCorrelationId(correlationId, TimeSpan.Zero);
}
}
catch (MessageQueueException)
{
// If status queue is empty, peek will throw MessageQueueException
throw new InvalidOperationException();
}
statusQueue.Dispose();
statusQueue.Close();
return statusMessage;
}