MessageQueue Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет доступ к очереди на сервере очереди сообщений.
public ref class MessageQueue : System::ComponentModel::Component, System::Collections::IEnumerable
[System.ComponentModel.TypeConverter(typeof(System.Messaging.Design.MessageQueueConverter))]
public class MessageQueue : System.ComponentModel.Component, System.Collections.IEnumerable
[System.ComponentModel.TypeConverter(typeof(System.Messaging.Design.MessageQueueConverter))]
[System.Messaging.MessagingDescription("MessageQueueDesc")]
public class MessageQueue : System.ComponentModel.Component, System.Collections.IEnumerable
[<System.ComponentModel.TypeConverter(typeof(System.Messaging.Design.MessageQueueConverter))>]
type MessageQueue = class
inherit Component
interface IEnumerable
[<System.ComponentModel.TypeConverter(typeof(System.Messaging.Design.MessageQueueConverter))>]
[<System.Messaging.MessagingDescription("MessageQueueDesc")>]
type MessageQueue = class
inherit Component
interface IEnumerable
Public Class MessageQueue
Inherits Component
Implements IEnumerable
- Наследование
- Атрибуты
- Реализации
Примеры
В следующем примере кода создаются новые MessageQueue объекты с помощью различных типов синтаксиса имен пути. В каждом случае он отправляет сообщение в очередь, путь которой определен в конструкторе.
#using <system.dll>
#using <system.messaging.dll>
using namespace System;
using namespace System::Messaging;
ref class MyNewQueue
{
public:
// References public queues.
void SendPublic()
{
MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" );
myQueue->Send( "Public queue by path name." );
return;
}
// References private queues.
void SendPrivate()
{
MessageQueue^ myQueue = gcnew MessageQueue( ".\\Private$\\myQueue" );
myQueue->Send( "Private queue by path name." );
return;
}
// References queues by label.
void SendByLabel()
{
MessageQueue^ myQueue = gcnew MessageQueue( "Label:TheLabel" );
myQueue->Send( "Queue by label." );
return;
}
// References queues by format name.
void SendByFormatName()
{
MessageQueue^ myQueue = gcnew MessageQueue( "FormatName:Public=5A5F7535-AE9A-41d4 -935C-845C2AFF7112" );
myQueue->Send( "Queue by format name." );
return;
}
// References computer journal queues.
void MonitorComputerJournal()
{
MessageQueue^ computerJournal = gcnew MessageQueue( ".\\Journal$" );
while ( true )
{
Message^ journalMessage = computerJournal->Receive();
// Process the journal message.
}
}
// References queue journal queues.
void MonitorQueueJournal()
{
MessageQueue^ queueJournal = gcnew MessageQueue( ".\\myQueue\\Journal$" );
while ( true )
{
Message^ journalMessage = queueJournal->Receive();
// Process the journal message.
}
}
// References dead-letter queues.
void MonitorDeadLetter()
{
MessageQueue^ deadLetter = gcnew MessageQueue( ".\\DeadLetter$" );
while ( true )
{
Message^ deadMessage = deadLetter->Receive();
// Process the dead-letter message.
}
}
// References transactional dead-letter queues.
void MonitorTransactionalDeadLetter()
{
MessageQueue^ TxDeadLetter = gcnew MessageQueue( ".\\XactDeadLetter$" );
while ( true )
{
Message^ txDeadLetter = TxDeadLetter->Receive();
// Process the transactional dead-letter message.
}
}
};
//*************************************************
// Provides an entry point into the application.
//
// This example demonstrates several ways to set
// a queue's path.
//*************************************************
int main()
{
// Create a new instance of the class.
MyNewQueue^ myNewQueue = gcnew MyNewQueue;
myNewQueue->SendPublic();
myNewQueue->SendPrivate();
myNewQueue->SendByLabel();
myNewQueue->SendByFormatName();
myNewQueue->MonitorComputerJournal();
myNewQueue->MonitorQueueJournal();
myNewQueue->MonitorDeadLetter();
myNewQueue->MonitorTransactionalDeadLetter();
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 demonstrates several ways to set
// a queue's path.
//**************************************************
public static void Main()
{
// Create a new instance of the class.
MyNewQueue myNewQueue = new MyNewQueue();
myNewQueue.SendPublic();
myNewQueue.SendPrivate();
myNewQueue.SendByLabel();
myNewQueue.SendByFormatName();
myNewQueue.MonitorComputerJournal();
myNewQueue.MonitorQueueJournal();
myNewQueue.MonitorDeadLetter();
myNewQueue.MonitorTransactionalDeadLetter();
return;
}
// References public queues.
public void SendPublic()
{
MessageQueue myQueue = new MessageQueue(".\\myQueue");
myQueue.Send("Public queue by path name.");
return;
}
// References private queues.
public void SendPrivate()
{
MessageQueue myQueue = new
MessageQueue(".\\Private$\\myQueue");
myQueue.Send("Private queue by path name.");
return;
}
// References queues by label.
public void SendByLabel()
{
MessageQueue myQueue = new MessageQueue("Label:TheLabel");
myQueue.Send("Queue by label.");
return;
}
// References queues by format name.
public void SendByFormatName()
{
MessageQueue myQueue = new
MessageQueue("FormatName:Public=5A5F7535-AE9A-41d4" +
"-935C-845C2AFF7112");
myQueue.Send("Queue by format name.");
return;
}
// References computer journal queues.
public void MonitorComputerJournal()
{
MessageQueue computerJournal = new
MessageQueue(".\\Journal$");
while(true)
{
Message journalMessage = computerJournal.Receive();
// Process the journal message.
}
}
// References queue journal queues.
public void MonitorQueueJournal()
{
MessageQueue queueJournal = new
MessageQueue(".\\myQueue\\Journal$");
while(true)
{
Message journalMessage = queueJournal.Receive();
// Process the journal message.
}
}
// References dead-letter queues.
public void MonitorDeadLetter()
{
MessageQueue deadLetter = new
MessageQueue(".\\DeadLetter$");
while(true)
{
Message deadMessage = deadLetter.Receive();
// Process the dead-letter message.
}
}
// References transactional dead-letter queues.
public void MonitorTransactionalDeadLetter()
{
MessageQueue TxDeadLetter = new
MessageQueue(".\\XactDeadLetter$");
while(true)
{
Message txDeadLetter = TxDeadLetter.Receive();
// Process the transactional dead-letter message.
}
}
}
}
Imports System.Messaging
Public Class MyNewQueue
' Provides an entry point into the application.
'
' This example demonstrates several ways to set
' a queue's path.
Public Shared Sub Main()
' Create a new instance of the class.
Dim myNewQueue As New MyNewQueue()
myNewQueue.SendPublic()
myNewQueue.SendPrivate()
myNewQueue.SendByLabel()
myNewQueue.SendByFormatName()
myNewQueue.MonitorComputerJournal()
myNewQueue.MonitorQueueJournal()
myNewQueue.MonitorDeadLetter()
myNewQueue.MonitorTransactionalDeadLetter()
Return
End Sub
' References public queues.
Public Sub SendPublic()
Dim myQueue As New MessageQueue(".\myQueue")
myQueue.Send("Public queue by path name.")
Return
End Sub
' References private queues.
Public Sub SendPrivate()
Dim myQueue As New MessageQueue(".\Private$\myQueue")
myQueue.Send("Private queue by path name.")
Return
End Sub
' References queues by label.
Public Sub SendByLabel()
Dim myQueue As New MessageQueue("Label:TheLabel")
myQueue.Send("Queue by label.")
Return
End Sub
' References queues by format name.
Public Sub SendByFormatName()
Dim myQueue As New _
MessageQueue("FormatName:Public=" + _
"5A5F7535-AE9A-41d4-935C-845C2AFF7112")
myQueue.Send("Queue by format name.")
Return
End Sub
' References computer journal queues.
Public Sub MonitorComputerJournal()
Dim computerJournal As New MessageQueue(".\Journal$")
While True
Dim journalMessage As Message = _
computerJournal.Receive()
' Process the journal message.
End While
Return
End Sub
' References queue journal queues.
Public Sub MonitorQueueJournal()
Dim queueJournal As New _
MessageQueue(".\myQueue\Journal$")
While True
Dim journalMessage As Message = _
queueJournal.Receive()
' Process the journal message.
End While
Return
End Sub
' References dead-letter queues.
Public Sub MonitorDeadLetter()
Dim deadLetter As New MessageQueue(".\DeadLetter$")
While True
Dim deadMessage As Message = deadLetter.Receive()
' Process the dead-letter message.
End While
Return
End Sub
' References transactional dead-letter queues.
Public Sub MonitorTransactionalDeadLetter()
Dim TxDeadLetter As New MessageQueue(".\XactDeadLetter$")
While True
Dim txDeadLetterMessage As Message = _
TxDeadLetter.Receive()
' Process the transactional dead-letter message.
End While
Return
End Sub
End Class
Следующий пример кода отправляет сообщение в очередь и получает сообщение из очереди с помощью класса, который называется Orderприложением.
#using <system.dll>
#using <system.messaging.dll>
using namespace System;
using namespace System::Messaging;
// This class represents an object the following example
// sends to a queue and receives from a queue.
ref class Order
{
public:
int orderId;
DateTime orderTime;
};
/// <summary>
/// Provides a container class for the example.
/// </summary>
ref class MyNewQueue
{
public:
//*************************************************
// Sends an Order to a queue.
//*************************************************
void SendMessage()
{
// Create a new order and set values.
Order^ sentOrder = gcnew Order;
sentOrder->orderId = 3;
sentOrder->orderTime = DateTime::Now;
// Connect to a queue on the local computer.
MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" );
// Send the Order to the queue.
myQueue->Send( sentOrder );
return;
}
//*************************************************
// Receives a message containing an Order.
//*************************************************
void ReceiveMessage()
{
// Connect to the a queue on the local computer.
MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" );
// Set the formatter to indicate body contains an Order.
array<Type^>^p = gcnew array<Type^>(1);
p[ 0 ] = Order::typeid;
myQueue->Formatter = gcnew XmlMessageFormatter( p );
try
{
// Receive and format the message.
Message^ myMessage = myQueue->Receive();
Order^ myOrder = static_cast<Order^>(myMessage->Body);
// Display message information.
Console::WriteLine( "Order ID: {0}", myOrder->orderId );
Console::WriteLine( "Sent: {0}", myOrder->orderTime );
}
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 a message to a queue.
myNewQueue->SendMessage();
// Receive a message from a queue.
myNewQueue->ReceiveMessage();
return 0;
}
using System;
using System.Messaging;
namespace MyProject
{
// This class represents an object the following example
// sends to a queue and receives from a queue.
public class Order
{
public int orderId;
public DateTime orderTime;
};
/// <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 a message to a queue.
myNewQueue.SendMessage();
// Receive a message from a queue.
myNewQueue.ReceiveMessage();
return;
}
//**************************************************
// Sends an Order to a queue.
//**************************************************
public void SendMessage()
{
// Create a new order and set values.
Order sentOrder = new Order();
sentOrder.orderId = 3;
sentOrder.orderTime = DateTime.Now;
// Connect to a queue on the local computer.
MessageQueue myQueue = new MessageQueue(".\\myQueue");
// Send the Order to the queue.
myQueue.Send(sentOrder);
return;
}
//**************************************************
// Receives a message containing an Order.
//**************************************************
public void ReceiveMessage()
{
// Connect to the a queue on the local computer.
MessageQueue myQueue = new MessageQueue(".\\myQueue");
// Set the formatter to indicate body contains an Order.
myQueue.Formatter = new XmlMessageFormatter(new Type[]
{typeof(MyProject.Order)});
try
{
// Receive and format the message.
Message myMessage = myQueue.Receive();
Order myOrder = (Order)myMessage.Body;
// Display message information.
Console.WriteLine("Order ID: " +
myOrder.orderId.ToString());
Console.WriteLine("Sent: " +
myOrder.orderTime.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
' This class represents an object the following example
' sends to a queue and receives from a queue.
Public Class Order
Public orderId As Integer
Public orderTime As DateTime
End Class
Public Class MyNewQueue
'
' Provides an entry point into the application.
'
' This example sends and receives a message from
' a qeue.
'
Public Shared Sub Main()
' Create a new instance of the class.
Dim myNewQueue As New MyNewQueue()
' Send a message to a queue.
myNewQueue.SendMessage()
' Receive a message from a queue.
myNewQueue.ReceiveMessage()
Return
End Sub
'
' Sends an Order to a queue.
'
Public Sub SendMessage()
' Create a new order and set values.
Dim sentOrder As New Order()
sentOrder.orderId = 3
sentOrder.orderTime = DateTime.Now
' Connect to a queue on the local computer.
Dim myQueue As New MessageQueue(".\myQueue")
' Send the Order to the queue.
myQueue.Send(sentOrder)
Return
End Sub
'
' Receives a message containing an Order.
'
Public Sub ReceiveMessage()
' Connect to the a queue on the local computer.
Dim myQueue As New MessageQueue(".\myQueue")
' Set the formatter to indicate the body contains an Order.
myQueue.Formatter = New XmlMessageFormatter(New Type() _
{GetType(Order)})
Try
' Receive and format the message.
Dim myMessage As Message = myQueue.Receive()
Dim myOrder As Order = CType(myMessage.Body, Order)
' Display message information.
Console.WriteLine(("Order ID: " + _
myOrder.orderId.ToString()))
Console.WriteLine(("Sent: " + _
myOrder.orderTime.ToString()))
Catch m As MessageQueueException
' Handle Message Queuing exceptions.
Catch e As InvalidOperationException
' Handle invalid serialization format.
Console.WriteLine(e.Message)
' Catch other exceptions as necessary.
End Try
Return
End Sub
End Class
Комментарии
Технология очереди сообщений позволяет приложениям работать в разное время для обмена данными между разнородными сетями и системами, которые могут временно находиться в автономном режиме. Приложения отправляют сообщения из очередей, получают или читают (считываются без удаления). Очередь сообщений является необязательным компонентом Windows 2000 и Windows NT и должна быть установлена отдельно.
Класс MessageQueue представляет собой оболочку вокруг очереди сообщений. Существует несколько версий очереди сообщений, и использование MessageQueue класса может привести к немного другому поведению в зависимости от используемой операционной системы.
Класс MessageQueue предоставляет ссылку на очередь очереди очереди сообщений. Можно указать путь в MessageQueue конструкторе для подключения к существующему ресурсу или создать новую очередь на сервере. Прежде чем вызывать Send(Object)PeekилиReceive, необходимо связать новый экземпляр MessageQueue класса с существующей очередью. На этом этапе можно управлять свойствами очереди, такими как Category и Label.
MessageQueue поддерживает два типа извлечения сообщений: синхронный и асинхронный. Синхронные методы Peek и Receive, при этом поток процесса ожидает указанного интервала времени, чтобы новое сообщение прибыло в очередь. Асинхронные методы BeginPeek и BeginReceiveпозволяют основным задачам приложения продолжать работу в отдельном потоке, пока сообщение не поступает в очередь. Эти методы работают с помощью объектов обратного вызова и объектов состояния для обмена данными между потоками.
При создании нового экземпляра MessageQueue класса вы не создаете новую очередь очереди очереди сообщений. Вместо этого можно использовать Create(String)Delete(String)методы и Purge методы для управления очередями на сервере.
В отличие Purgeот элементов и Delete(String) членовstatic, поэтому их можно вызывать без создания нового экземпляра MessageQueue класса. Create(String)
Свойство объекта Path можно задать MessageQueue одним из трех имен: понятное имя, FormatNameимя или .Label Понятное имя, которое определяется свойствами очередиQueueName, предназначеноQueueNameMachineName\для общедоступной очереди MachineName и MachineNameQueueName\Private$\для частной очереди. Свойство FormatName разрешает автономный доступ к очередям сообщений. Наконец, можно использовать свойство очереди Label для задания очереди Path.
Список начальных значений свойств для экземпляра MessageQueueсм. в конструкторе MessageQueue .
Конструкторы
| Имя | Описание |
|---|---|
| MessageQueue() |
Инициализирует новый экземпляр класса MessageQueue. После инициализации нового экземпляра конструктор без параметров необходимо задать свойство экземпляра Path , прежде чем использовать экземпляр. |
| MessageQueue(String, Boolean, Boolean, QueueAccessMode) |
Инициализирует новый экземпляр класса MessageQueue. |
| MessageQueue(String, Boolean, Boolean) |
Инициализирует новый экземпляр класса MessageQueue. |
| MessageQueue(String, Boolean) |
Инициализирует новый экземпляр MessageQueue класса, который ссылается на очередь очереди сообщений по указанному пути и с указанным ограничением доступа на чтение. |
| MessageQueue(String, QueueAccessMode) |
Инициализирует новый экземпляр класса MessageQueue. |
| MessageQueue(String) |
Инициализирует новый экземпляр MessageQueue класса, который ссылается на очередь очереди сообщений по указанному пути. |
Поля
| Имя | Описание |
|---|---|
| InfiniteQueueSize |
Указывает, что для очереди нет ограничений на размер. |
| InfiniteTimeout |
Указывает, что время ожидания не существует для методов, которые ищут или получают сообщения. |
Свойства
| Имя | Описание |
|---|---|
| AccessMode |
Возвращает значение, указывающее режим доступа для очереди. |
| Authenticate |
Возвращает или задает значение, указывающее, принимает ли очередь только прошедшие проверку подлинности сообщения. |
| BasePriority |
Возвращает или задает базовый приоритет очереди сообщений, которые используются для маршрутизации сообщений общедоступной очереди по сети. |
| CanRaiseEvents |
Возвращает значение, указывающее, может ли компонент вызвать событие. (Унаследовано от Component) |
| CanRead |
Возвращает значение, указывающее, можно ли MessageQueue считывать его. |
| CanWrite |
Возвращает значение, указывающее, можно ли записывать данные MessageQueue . |
| Category |
Возвращает или задает категорию очереди. |
| Container |
Возвращает объект IContainer , содержащий Componentобъект . (Унаследовано от Component) |
| CreateTime |
Возвращает время и дату создания очереди в очереди сообщений. |
| DefaultPropertiesToSend |
Возвращает или задает значения свойств сообщения, которые будут использоваться по умолчанию при отправке сообщений в очередь. |
| DenySharedReceive |
Возвращает или задает значение, указывающее, имеет ли этот MessageQueue монопольный доступ к получению сообщений из очереди очереди сообщений. |
| DesignMode |
Возвращает значение, указывающее, находится ли текущий Component режим разработки. (Унаследовано от Component) |
| EnableConnectionCache |
Возвращает или задает значение, указывающее, будет ли кэш подключений поддерживаться приложением. |
| EncryptionRequired |
Возвращает или задает значение, указывающее, принимает ли очередь только не закрытые (не зашифрованные) сообщения. |
| Events |
Возвращает список обработчиков событий, подключенных к этому Component. (Унаследовано от Component) |
| FormatName |
Возвращает уникальное имя очереди, созданное во время создания очереди. |
| Formatter |
Возвращает или задает средство форматирования, используемое для сериализации объекта в объект или десериализации объекта из текста сообщения, считываемого или записанного в очередь. |
| Id |
Возвращает уникальный идентификатор очереди сообщений. |
| Label |
Возвращает или задает описание очереди. |
| LastModifyTime |
Получает последний раз, когда свойства очереди были изменены. |
| MachineName |
Возвращает или задает имя компьютера, в котором находится очередь очереди сообщений. |
| MaximumJournalSize |
Возвращает или задает максимальный размер очереди журнала. |
| MaximumQueueSize |
Возвращает или задает максимальный размер очереди. |
| MessageReadPropertyFilter |
Возвращает или задает фильтр свойств для получения или просмотра сообщений. |
| MulticastAddress |
Возвращает или задает адрес многоадресной рассылки, связанный с очередью. |
| Path |
Возвращает или задает путь очереди. Path Установка причины MessageQueue указания на новую очередь. |
| QueueName |
Возвращает или задает понятное имя, определяющее очередь. |
| ReadHandle |
Получает собственный дескриптор, используемый для чтения сообщений из очереди сообщений. |
| Site |
Возвращает или задает ISite объект Component. (Унаследовано от Component) |
| SynchronizingObject |
Возвращает или задает объект, который маршалирует вызов обработчика событий, полученный из ReceiveCompleted или PeekCompleted события. |
| Transactional |
Возвращает значение, указывающее, принимает ли очередь только транзакции. |
| UseJournalQueue |
Возвращает или задает значение, указывающее, копируются ли полученные сообщения в очередь журнала. |
| WriteHandle |
Получает собственный дескриптор, используемый для отправки сообщений в очередь сообщений. |
Методы
| Имя | Описание |
|---|---|
| BeginPeek() |
Инициирует асинхронную операцию просмотра, которая не имеет времени ожидания. Операция не будет завершена, пока сообщение не станет доступным в очереди. |
| BeginPeek(TimeSpan, Cursor, PeekAction, Object, AsyncCallback) |
Инициирует асинхронную операцию просмотра, которая имеет заданное время ожидания и использует указанный курсор, указанное действие просмотра и указанный объект состояния. Объект состояния предоставляет связанные сведения в течение всего времени существования операции. Эта перегрузка получает уведомление через обратный вызов идентификатор обработчика событий для операции. Операция не завершается до тех пор, пока сообщение не станет доступным в очереди или время ожидания. |
| BeginPeek(TimeSpan, Object, AsyncCallback) |
Инициирует асинхронную операцию просмотра с заданным временем ожидания и заданным объектом состояния, который предоставляет связанную информацию в течение всего времени существования операции. Эта перегрузка получает уведомление через обратный вызов идентификатор обработчика событий для операции. Операция не завершается до тех пор, пока сообщение не станет доступным в очереди или время ожидания. |
| BeginPeek(TimeSpan, Object) |
Инициирует асинхронную операцию просмотра с заданным временем ожидания и заданным объектом состояния, который предоставляет связанную информацию в течение всего времени существования операции. Операция не завершается до тех пор, пока сообщение не станет доступным в очереди или время ожидания. |
| BeginPeek(TimeSpan) |
Инициирует асинхронную операцию просмотра с указанным временем ожидания. Операция не завершается до тех пор, пока сообщение не станет доступным в очереди или время ожидания. |
| BeginReceive() |
Инициирует асинхронную операцию получения, которая не имеет времени ожидания. Операция не будет завершена, пока сообщение не станет доступным в очереди. |
| BeginReceive(TimeSpan, Cursor, Object, AsyncCallback) |
Инициирует асинхронную операцию получения с заданным временем ожидания и использует указанный курсор и указанный объект состояния. Объект состояния предоставляет связанные сведения в течение всего времени существования операции. Эта перегрузка получает уведомление через обратный вызов идентификатор обработчика событий для операции. Операция не завершается до тех пор, пока сообщение не станет доступным в очереди или время ожидания. |
| BeginReceive(TimeSpan, Object, AsyncCallback) |
Инициирует асинхронную операцию получения с заданным временем ожидания и заданным объектом состояния, который предоставляет связанные сведения в течение всего времени существования операции. Эта перегрузка получает уведомление через обратный вызов идентификатор обработчика событий для операции. Операция не завершается до тех пор, пока сообщение не станет доступным в очереди или время ожидания. |
| BeginReceive(TimeSpan, Object) |
Инициирует асинхронную операцию получения с заданным временем ожидания и заданным объектом состояния, который предоставляет связанные сведения в течение всего времени существования операции. Операция не завершается до тех пор, пока сообщение не станет доступным в очереди или время ожидания. |
| BeginReceive(TimeSpan) |
Инициирует асинхронную операцию получения с указанным временем ожидания. Операция не завершается до тех пор, пока сообщение не станет доступным в очереди или время ожидания. |
| ClearConnectionCache() |
Очищает кэш подключений. |
| Close() |
Освобождает все ресурсы, выделенные объектом MessageQueue. |
| Create(String, Boolean) |
Создает очередь очереди очереди очередей сообщений, не относящихся к транзакциям, по указанному пути. |
| Create(String) |
Создает очередь очереди очереди сообщений, не относящихся к транзакциям, по указанному пути. |
| CreateCursor() |
Создает новое Cursor для текущей очереди сообщений. |
| CreateObjRef(Type) |
Создает объект, содержащий все соответствующие сведения, необходимые для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
| Delete(String) |
Удаляет очередь на сервере очереди сообщений. |
| Dispose() |
Освобождает все ресурсы, используемые параметром Component. (Унаследовано от Component) |
| Dispose(Boolean) |
Удаляет ресурсы (кроме памяти), используемые параметром MessageQueue. |
| EndPeek(IAsyncResult) |
Завершает указанную асинхронную операцию просмотра. |
| EndReceive(IAsyncResult) |
Завершает указанную асинхронную операцию получения. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| Exists(String) |
Определяет, существует ли очередь очереди очереди сообщений по указанному пути. |
| GetAllMessages() |
Возвращает все сообщения, находящиеся в очереди. |
| GetEnumerator() |
Устаревшие..
Перечисляет сообщения в очереди. GetEnumerator() не рекомендуется к использованию. GetMessageEnumerator2() вместо этого следует использовать. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetLifetimeService() |
Устаревшие..
Извлекает текущий объект службы времени существования, который управляет политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| GetMachineId(String) |
Возвращает идентификатор компьютера, на который ссылается очередь, на которую ссылается эта MessageQueue команда. |
| GetMessageEnumerator() |
Устаревшие..
Создает объект перечислителя для всех сообщений в очереди. GetMessageEnumerator() не рекомендуется к использованию. GetMessageEnumerator2() вместо этого следует использовать. |
| GetMessageEnumerator2() |
Создает объект перечислителя для всех сообщений в очереди. |
| GetMessageQueueEnumerator() |
Предоставляет семантику курсора только для пересылки для перечисления во всех общедоступных очередях в сети. |
| GetMessageQueueEnumerator(MessageQueueCriteria) |
Предоставляет семантику курсора только для пересылки для перечисления всех общедоступных очередей в сети, удовлетворяющей заданным критериям. |
| GetPrivateQueuesByMachine(String) |
Извлекает все частные очереди на указанном компьютере. |
| GetPublicQueues() |
Извлекает все общедоступные очереди в сети. |
| GetPublicQueues(MessageQueueCriteria) |
Извлекает все общедоступные очереди в сети, удовлетворяющие указанным условиям. |
| GetPublicQueuesByCategory(Guid) |
Извлекает все общедоступные очереди в сети, принадлежащие указанной категории. |
| GetPublicQueuesByLabel(String) |
Извлекает все общедоступные очереди в сети, которые несут указанную метку. |
| GetPublicQueuesByMachine(String) |
Извлекает все общедоступные очереди, которые находятся на указанном компьютере. |
| GetSecurityContext() |
Извлекает контекст безопасности, связанный MSMQ с текущим пользователем (удостоверением потока) во время этого вызова. |
| GetService(Type) |
Возвращает объект, представляющий службу, предоставляемую Component или ее Container. (Унаследовано от Component) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| InitializeLifetimeService() |
Устаревшие..
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| MemberwiseClone(Boolean) |
Создает неглубокую копию текущего MarshalByRefObject объекта. (Унаследовано от MarshalByRefObject) |
| Peek() |
Возвращается без удаления первого сообщения в очереди, на которое ссылается это MessageQueue. Метод Peek() синхронен, поэтому он блокирует текущий поток, пока сообщение не станет доступным. |
| Peek(TimeSpan, Cursor, PeekAction) |
Возвращается без удаления (просмотр) текущего или следующего сообщения в очереди с помощью указанного курсора. Метод Peek() синхронен, поэтому блокирует текущий поток, пока сообщение не станет доступным или указано время ожидания. |
| Peek(TimeSpan) |
Возвращается без удаления первого сообщения в очереди, на которое ссылается это MessageQueue. Метод Peek() синхронен, поэтому блокирует текущий поток, пока сообщение не станет доступным или указано время ожидания. |
| PeekByCorrelationId(String, TimeSpan) |
Выводит сообщение, соответствующее заданному идентификатору корреляции, и ожидает, пока сообщение с указанным идентификатором корреляции будет доступно в очереди или истекает время ожидания. |
| PeekByCorrelationId(String) |
Выводит сообщение, соответствующее заданному идентификатору корреляции, и немедленно вызывает исключение, если в очереди нет сообщения с указанным идентификатором корреляции. |
| PeekById(String, TimeSpan) |
Выводит сообщение, идентификатор сообщения которого соответствует параметру |
| PeekById(String) |
Выводит сообщение, идентификатор сообщения которого соответствует параметру |
| PeekByLookupId(Int64) |
Представлено в MSMQ 3.0. Просматривает сообщение, соответствующее заданному идентификатору подстановки из очереди, отличной от транзакций. |
| PeekByLookupId(MessageLookupAction, Int64) |
Представлено в MSMQ 3.0. Просматривает определенное сообщение из очереди. Сообщение может быть указано идентификатором подстановки или его положением в передней или конечной части очереди. |
| Purge() |
Удаляет все сообщения, содержащиеся в очереди. |
| Receive() |
Получает первое сообщение, доступное в очереди, на которую ссылается .MessageQueue Этот вызов синхронен и блокирует текущий поток выполнения до тех пор, пока сообщение не будет доступно. |
| Receive(MessageQueueTransaction) |
Получает первое сообщение, доступное в очереди транзакций, на которое ссылается .MessageQueue Этот вызов синхронен и блокирует текущий поток выполнения до тех пор, пока сообщение не будет доступно. |
| Receive(MessageQueueTransactionType) |
Получает первое сообщение, доступное в очереди, на которую ссылается .MessageQueue Этот вызов синхронен и блокирует текущий поток выполнения до тех пор, пока сообщение не будет доступно. |
| Receive(TimeSpan, Cursor, MessageQueueTransaction) |
Получает текущее сообщение в очереди с помощью указанного курсора. Если сообщение недоступно, этот метод ожидает, пока не будет доступно сообщение или истекает время ожидания. |
| Receive(TimeSpan, Cursor, MessageQueueTransactionType) |
Получает текущее сообщение в очереди с помощью указанного курсора. Если сообщение недоступно, этот метод ожидает, пока не будет доступно сообщение или истекает время ожидания. |
| Receive(TimeSpan, Cursor) |
Получает текущее сообщение в очереди с помощью указанного курсора. Если сообщение недоступно, этот метод ожидает, пока не будет доступно сообщение или истекает время ожидания. |
| Receive(TimeSpan, MessageQueueTransaction) |
Получает первое сообщение, доступное в очереди транзакций, на которое ссылается MessageQueue и ожидает, пока сообщение не будет доступно в очереди или истекает время ожидания. |
| Receive(TimeSpan, MessageQueueTransactionType) |
Получает первое сообщение, доступное в очереди, на которую ссылается .MessageQueue Этот вызов синхронен и ожидает, пока сообщение не будет доступно в очереди или истекает время ожидания. |
| Receive(TimeSpan) |
Получает первое сообщение, доступное в очереди, на которое ссылается MessageQueue ссылка, и ожидает, пока сообщение не будет доступно в очереди или истекает время ожидания. |
| ReceiveByCorrelationId(String, MessageQueueTransaction) |
Получает сообщение, соответствующее заданному идентификатору корреляции (из очереди транзакций), и немедленно вызывает исключение, если сообщение с указанным идентификатором корреляции в настоящее время отсутствует в очереди. |
| ReceiveByCorrelationId(String, MessageQueueTransactionType) |
Получает сообщение, соответствующее заданному идентификатору корреляции, и немедленно вызывает исключение, если в очереди нет сообщения с указанным идентификатором корреляции. |
| ReceiveByCorrelationId(String, TimeSpan, MessageQueueTransaction) |
Получает сообщение, соответствующее заданному идентификатору корреляции (из очереди транзакций), и ожидает, пока сообщение с указанным идентификатором корреляции будет доступно в очереди или истекает время ожидания. |
| ReceiveByCorrelationId(String, TimeSpan, MessageQueueTransactionType) |
Получает сообщение, соответствующее заданному идентификатору корреляции, и ожидает, пока сообщение с указанным идентификатором корреляции будет доступно в очереди или истекает время ожидания. |
| ReceiveByCorrelationId(String, TimeSpan) |
Получает сообщение, соответствующее заданному идентификатору корреляции (из очереди, отличной от транзакций), и ожидает, пока сообщение с указанным идентификатором корреляции будет доступно в очереди или истекает время ожидания. |
| ReceiveByCorrelationId(String) |
Получает сообщение, соответствующее заданному идентификатору корреляции (из очереди, отличной от транзакций), и немедленно вызывает исключение, если сообщение с указанным идентификатором корреляции в настоящее время отсутствует в очереди. |
| ReceiveById(String, MessageQueueTransaction) |
Получает сообщение, соответствующее заданному идентификатору (из очереди транзакций), и немедленно вызывает исключение, если в очереди нет сообщения с указанным идентификатором. |
| ReceiveById(String, MessageQueueTransactionType) |
Получает сообщение, соответствующее заданному идентификатору, и немедленно вызывает исключение, если в очереди нет сообщения с указанным идентификатором. |
| ReceiveById(String, TimeSpan, MessageQueueTransaction) |
Получает сообщение, соответствующее заданному идентификатору (из очереди транзакций), и ожидает, пока сообщение с указанным идентификатором не будет доступно в очереди или истекает время ожидания. |
| ReceiveById(String, TimeSpan, MessageQueueTransactionType) |
Получает сообщение, соответствующее заданному идентификатору, и ожидает, пока сообщение с указанным идентификатором не будет доступно в очереди или истекает время ожидания. |
| ReceiveById(String, TimeSpan) |
Получает сообщение, соответствующее заданному идентификатору (из очереди, отличной от транзакций), и ожидает, пока сообщение с указанным идентификатором не будет доступно в очереди или истекает время ожидания. |
| ReceiveById(String) |
Получает сообщение, соответствующее заданному идентификатору, из очереди, отличной от транзакций, и немедленно вызывает исключение, если сообщение с указанным идентификатором в настоящее время отсутствует в очереди. |
| ReceiveByLookupId(Int64) |
Представлено в MSMQ 3.0. Получает сообщение, соответствующее заданному идентификатору подстановки, из очереди, отличной от транзакций. |
| ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransaction) |
Представлено в MSMQ 3.0. Получает определенное сообщение из очереди транзакций. Сообщение может быть указано идентификатором подстановки или его положением в передней или конечной части очереди. |
| ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransactionType) |
Представлено в MSMQ 3.0. Получает определенное сообщение из очереди, используя указанный контекст транзакции. Сообщение может быть указано идентификатором подстановки или его положением в передней или конечной части очереди. |
| Refresh() |
Обновляет свойства, представленные в соответствии с MessageQueue текущим состоянием ресурса. |
| ResetPermissions() |
Сбрасывает список разрешений в значения по умолчанию операционной системы. Удаляет все разрешения очереди, добавленные в список по умолчанию. |
| Send(Object, MessageQueueTransaction) |
Отправляет объект в очередь транзакций, на которую ссылается эта MessageQueueссылка. |
| Send(Object, MessageQueueTransactionType) |
Отправляет объект в очередь, на которую ссылается эта MessageQueueссылка. |
| Send(Object, String, MessageQueueTransaction) |
Отправляет объект в очередь транзакций, на которую ссылается это MessageQueue , и указывает метку для сообщения. |
| Send(Object, String, MessageQueueTransactionType) |
Отправляет объект в очередь, на которую ссылается эта MessageQueue ссылка, и указывает метку для сообщения. |
| Send(Object, String) |
Отправляет объект в очередь, на которую ссылается MessageQueue не транзакционная очередь, и указывает метку для сообщения. |
| Send(Object) |
Отправляет объект в очередь без транзакций, на которую ссылается этот MessageQueueпараметр. |
| SetPermissions(AccessControlList) |
Назначает права доступа к очереди на основе содержимого списка управления доступом. |
| SetPermissions(MessageQueueAccessControlEntry) |
Назначает права доступа в очередь на основе содержимого записи управления доступом. |
| SetPermissions(String, MessageQueueAccessRights, AccessControlEntryType) |
Предоставляет компьютеру, группе или пользователю указанные права доступа с указанным типом управления доступом (разрешить, запретить, отозвать или задать). |
| SetPermissions(String, MessageQueueAccessRights) |
Предоставляет компьютеру, группе или пользователю указанные права доступа. |
| ToString() |
String Возвращает имя, содержащее имя , если таковое Componentимеется. Этот метод не должен быть переопределен. (Унаследовано от Component) |
События
| Имя | Описание |
|---|---|
| Disposed |
Происходит при удалении компонента вызовом Dispose() метода. (Унаследовано от Component) |
| PeekCompleted |
Происходит при чтении сообщения без удаления из очереди. Это результат асинхронной операции BeginPeek(). |
| ReceiveCompleted |
Происходит при удалении сообщения из очереди. Это событие вызывается асинхронной операцией BeginReceive(). |
Методы расширения
| Имя | Описание |
|---|---|
| AsParallel(IEnumerable) |
Включает параллелизацию запроса. |
| AsQueryable(IEnumerable) |
Преобразует IEnumerable в IQueryable. |
| Cast<TResult>(IEnumerable) |
Приведение элементов IEnumerable к указанному типу. |
| OfType<TResult>(IEnumerable) |
Фильтрует элементы IEnumerable на основе указанного типа. |
Применяется к
Потокобезопасность
GetAllMessages() Только этот метод является потокобезопасной.