Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo MessageQueue.GetPublicQueues (MessageQueueCriteria)

 

Data di pubblicazione: ottobre 2016

Recupera tutte le code pubbliche sulla rete che soddisfano i criteri specificati.

Spazio dei nomi:   System.Messaging
Assembly:  System.Messaging (in System.Messaging.dll)

public static MessageQueue[] GetPublicQueues(
	MessageQueueCriteria criteria
)

Parametri

criteria
Type: System.Messaging.MessageQueueCriteria

Oggetto MessageQueueCriteria che contiene i criteri utilizzati per filtrare le code.

Valore restituito

Type: System.Messaging.MessageQueue[]

Matrice di MessageQueue oggetti che fanno riferimento alle code pubbliche recuperate.

Exception Condition
MessageQueueException

Si è verificato un errore quando si accede a un metodo di Accodamento messaggi.

Se si desidera filtrare tutte le code pubbliche sulla rete per etichetta, categoria o nome del computer, la MessageQueue classe contenente metodi specifici che forniscono tale funzionalità (GetPublicQueuesByLabel(String), GetPublicQueuesByCategory(Guid), e GetPublicQueuesByMachine(String), rispettivamente). Utilizzare questo overload per ottenere un elenco di tutte le code pubbliche sulla rete che soddisfano più di uno di questi criteri (ad esempio, se si desidera specificare un'etichetta e una categoria). È possibile anche filtrare in base a criteri messaggio diverso da Label, Category, e MachineName. Ad esempio, utilizzare questo overload per filtrare in base all'ora dell'ultima modifica della coda. È sufficiente creare una nuova istanza di MessageQueueCriteria classe, impostare le proprietà appropriate nell'istanza e passare l'istanza come il criteria parametro.

GetPublicQueues Recupera uno snapshot statico delle code. Per interagire con un elenco dinamico di code, utilizzare GetMessageQueueEnumerator.

Nella tabella seguente indica se questo metodo è disponibile in diverse modalità gruppo di lavoro.

Modalità gruppo di lavoro

Disponibile

Computer locale

No

Computer locale e il nome di formato direct

No

Computer remoto

No

Computer remoto e il nome di formato direct

No

Esempio di codice seguente recupera gli elenchi di code.

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 gets lists of queues by a variety
		// of criteria.
		//**************************************************

		public static void Main()
		{
			// Create a new instance of the class.
			MyNewQueue myNewQueue = new MyNewQueue();

			// Send normal and high priority messages.
			myNewQueue.GetQueuesByCategory();
			myNewQueue.GetQueuesByLabel();
			myNewQueue.GetQueuesByComputer();
			myNewQueue.GetAllPublicQueues();
			myNewQueue.GetPublicQueuesByCriteria();
			myNewQueue.GetPrivateQueues();

			return;
		}


		//**************************************************
		// Gets a list of queues with a specified category.
		// Sends a broadcast message to all queues in that
		// category.
		//**************************************************

		public void GetQueuesByCategory()
		{
			// Get a list of queues with the specified category.
			MessageQueue[] QueueList = 
				MessageQueue.GetPublicQueuesByCategory(new 
				Guid("{00000000-0000-0000-0000-000000000001}"));

			// Send a broadcast message to each queue in the array.
			foreach(MessageQueue queueItem in QueueList)
			{
				queueItem.Send("Broadcast message.");
			}

			return;
		}


		//**************************************************
		// Gets a list of queues with a specified label.
		// Sends a broadcast message to all queues with that
		// label.
		//**************************************************

		public void GetQueuesByLabel()
		{
			// Get a list of queues with the specified label.
			MessageQueue[] QueueList = 
				MessageQueue.GetPublicQueuesByLabel("My Label");

			// Send a broadcast message to each queue in the array.
			foreach(MessageQueue queueItem in QueueList)
			{
				queueItem.Send("Broadcast message.");
			}

			return;
		}


		//**************************************************
		// Gets a list of queues on a specified computer. 
		// Displays the list on screen.
		//**************************************************

		public void GetQueuesByComputer()
		{
			// Get a list of queues on the specified computer.
			MessageQueue[] QueueList = 
				MessageQueue.GetPublicQueuesByMachine("MyComputer");

			// Display the paths of the queues in the list.
			foreach(MessageQueue queueItem in QueueList)
			{
				Console.WriteLine(queueItem.Path);
			}

			return;
		}


		//**************************************************
		// Gets a list of all public queues.
		//**************************************************

		public void GetAllPublicQueues()
		{
			// Get a list of public queues.
			MessageQueue[] QueueList = 
				MessageQueue.GetPublicQueues();

			return;
		}


		//**************************************************
		// Gets a list of all public queues that match 
		// specified criteria. Displays the list on 
		// screen.
		//**************************************************

		public void GetPublicQueuesByCriteria()
		{
			// Define criteria to filter the queues.
			MessageQueueCriteria myCriteria = new 
				MessageQueueCriteria();
			myCriteria.CreatedAfter = DateTime.Now.Subtract(new 
				TimeSpan(1,0,0,0));
			myCriteria.ModifiedBefore = DateTime.Now;
			myCriteria.MachineName = ".";
			myCriteria.Label = "My Queue";

			// Get a list of queues with that criteria.
			MessageQueue[] QueueList = 
				MessageQueue.GetPublicQueues(myCriteria);

			// Display the paths of the queues in the list.
			foreach(MessageQueue queueItem in QueueList)
			{
				Console.WriteLine(queueItem.Path);
			}

			return;
		}


		//**************************************************
		// Gets a list of private queues on the local 
		// computer. Displays the list on screen.
		//**************************************************

		public void GetPrivateQueues()
		{
			// Get a list of queues with the specified category.
			MessageQueue[] QueueList = 
				MessageQueue.GetPrivateQueuesByMachine(".");

			// Display the paths of the queues in the list.
			foreach(MessageQueue queueItem in QueueList)
			{
				Console.WriteLine(queueItem.Path);
			}

			return;
		}
	}
}

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: