這是一個C#操作消息隊(duì)列的代碼,給新手朋友學(xué)習(xí)下,新疆二域軟件開發(fā)網(wǎng)整理發(fā)布m.jdtbank.com
public class QueueManage { /// /// 發(fā)送對象到隊(duì)列中 /// /// 隊(duì)列名稱,因?yàn)殛?duì)列名稱在一個應(yīng)用中應(yīng)該不改變的,所以大家最好寫在配置文件中 /// 要發(fā)出去的對象 public static void SendQueue(string QueuePath,MyBase.SmsQueue sq) { System.Messaging.MessageQueue mqSend=new System.Messaging.MessageQueue(QueuePath,false); EnsureQueueExists(QueuePath); mqSend.Send(sq); } /// /// 檢查隊(duì)列,如果隊(duì)列不存在,則建立 /// /// 隊(duì)列名稱 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); ///不知道該給什么樣的權(quán)限好,所以就給了Everone全部權(quán)限了,當(dāng)然大家最好自己控制一下 } } }
/// /// 從隊(duì)列中取出對象列表 /// /// 隊(duì)列名稱 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; } }
|