Public class queuemanage
{
///
/// Send the object to the queue
///
///Queue name, because the queue name should not be changed in an application, so it is best to write it in the configuration file.
///Objects to be sent out
Public static void sendqueue (string queuepath, mybase. smsqueue sq)
{
System. messaging. messagequeue mqsend = new system. messaging. messagequeue (queuepath, false );
Ensurequeueexists (queuepath );
Mqsend. Send (SQ );
}
///
/// Check the queue. If the queue does not exist, create
///
///Queue name
Private Static void ensurequeueexists (string path)
{
If (! Messagequeue. exists (PATH ))
{
If (! Messagequeue. exists (PATH ))
{
Messagequeue. Create (PATH );
Messagequeue mqtemp = new messagequeue (PATH );
Mqtemp. setpermissions ("everyone", system. messaging. messagequeueaccessrights. fullcontrol );
/// I don't know what permissions should I give, so I gave all the permissions to everone. Of course, you 'd better control them by yourself.
}
}
}
///
/// Retrieve the object list from the queue
///
///Queue name
Public static system. Collections. arraylist getmessage (string queuepath)
{
Mybase. smsqueue sq = new mybase. smsqueue ();
System. messaging. messagequeue MQ = new system. messaging. messagequeue (queuepath, false );
MQ. formatter = new xmlmessageformatter (New Type [] {typeof (mybase. smsqueue )});
System. messaging. Message [] arrm = MQ. getallmessages ();
MQ. Close ();
System. Collections. arraylist Al = new system. Collections. arraylist ();
Foreach (system. messaging. Message m in arrm)
{
Sq = (timefound. smsgate. Base. smsqueue) M. Body;
Al. Add (SQ );
}
Return al;
}
}
Extracted from a previous project. For more information, see.