首页 > 开发 > 综合 > 正文

C#操作消息队列

2024-07-21 02:19:32
字体:
来源:转载
供稿:网友
public class queuemanage
{
///
/// 发送对象到队列中
///
/// 队列名称,因为队列名称在一个应用中应该不改变的,所以大家最好写在配置文件中
/// 要发出去的对象
public static void sendqueue(string queuepath,mybase.smsqueue sq)
{
system.messaging.messagequeue mqsend=new system.messaging.messagequeue(queuepath,false);
ensurequeueexists(queuepath);
mqsend.send(sq);
}


///
/// 检查队列,如果队列不存在,则建立
///
/// 队列名称
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);
///不知道该给什么样的权限好,所以就给了everone全部权限了,当然大家最好自己控制一下
}
}
}


///
/// 从队列中取出对象列表
///
/// 队列名称
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;

}

}

从以前的一个项目中摘抄出来的,大家参考一下吧。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表