115 votes

Le minimum nécessaire à écrire un exemple d'application MSMQ

J'ai cherché pendant plus d'une heure et de trouver de grands échantillons de comment utiliser MSMQ en C#, et même un chapitre entier d'un livre sur le Message de la File d'attente...Mais pour un test rapide à tous j'ai besoin est de couvrir ce scénario est-il, pas même d'une manière parfaite, juste pour une démonstration rapide:

"Application": Écrit un Message à la File d'attente de Messages. ( Une Application C# service windows) Maintenant j'ouvre l'Application "B" ( c'est un C#, winForms app ) et je vérifie MSMQ et je vois oh, j'ai un nouveau Message.

C'est ça... Tout ce que je besoin pour une simple démo.

Quelqu'un pourrait-il m'aider avec un exemple de code pour cela? Très apprécié.

132voto

Anand Points 5385
//From Windows Service, use this code
MessageQueue messageQueue = null;
if (MessageQueue.Exists(@".\Private$\SomeTestName"))
{
    messageQueue = new MessageQueue(@".\Private$\SomeTestName");
    messageQueue.Label = "Testing Queue";
}
else
{
    // Create the Queue
    MessageQueue.Create(@".\Private$\SomeTestName");
    messageQueue = new MessageQueue(@".\Private$\SomeTestName");
    messageQueue.Label = "Newly Created Queue";
}
messageQueue.Send("First ever Message is sent to MSMQ", "Title");

//From Windows application
messageQueue = new MessageQueue(@".\Private$\SomeTestName");
System.Messaging.Message[] messages = messageQueue.GetAllMessages();

foreach (System.Messaging.Message message in messages)
{
    //Do something with the message.
}
// after all processing, delete all the messages
messageQueue.Purge();

Pour des scénarios plus complexes, vous pouvez utiliser les objets des Messages pour envoyer le message, enveloppez votre propre classe de l'objet à l'intérieur, et la marque de votre classe sérialisable. Assurez-vous également que MSMQ est installé sur votre système

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X