MSMQ消息队列学习笔记(一)

1.创建消息队列

   

       /// <summary>
        /// 在指定的路径中创建非事务性“消息队列”队列
        /// </summary>
        /// <param name="path">要创建队列的路径</param>
        /// <returns>返回:表示新队列的 System.Messaging.MessageQueue</returns>
        public static MessageQueue Create(string path)
      

        /// <summary>
        /// 在指定的路径中创建事务性或非事务性“消息队列”队列
        /// </summary>
        /// <param name="path">要创建的队列的路径</param>
        /// <param name="trans">如果创建事务性队列,为 true;如果创建非事务性队列,则为 false</param>
        /// <returns>返回:表示新队列的 System.Messaging.MessageQueue</returns>
        public static MessageQueue Create(string path, bool trans)
       

        //实现消息队列的创建简单代码,创建一个名为"myQueue"的非事务性"消息队列"
        public static void CreateQueue(string path)
        {
            if (!MessageQueue.Exists(path))
            {
                //MessageQueue.Create(path);
                MessageQueue.Create(@".\private$\myQueue");
            }
        }

2. 序列化和发送消息

     MSMQ消息队列中定义的消息由一个主体(body)和若干属性构成。消息的主体可以由文本、二进制构成,根据需要还可以被加密。在MSMQ 中消息的大小不能够超过4MB。发送消息是通过Send方法来完成的,需要一个Message参数。
a、发送消息:
     步骤:连接队列-->指定消息格式-->提供要发送的数据(主体)-->调用Send()方法将消息发送出去。详细见后面的示例程序。
    
b、序列化消息:
     消息序列化可以通过.NET Framework附带的三个预定义格式化程序来完成:
    --  XMLMessageFormatter对象----MessageQueue组件的默认格式化程序设置。
    --  BinaryMessageFormatter对象;
    --  ActiveXMessageFormatter对象; 


   常用的XMLMessageFormatter对象,提供3种方式重载:

    a.public XmlMessageFormatter();
    b.public XmlMessageFormatter(string[] targetTypeNames);
    c.public XmlMessageFormatter(Type[] targetTypes);

   // 序列化为字符串格式

    XmlMessageFormatter formatter = new XmlMessageFormatter(new Type[] { typeof(string) });

 

3.消息队列常用的方法

   在.NET环境下编写Message Queue程序的前提就是需要先安装MSMQ,本文之前已经作了详细的介绍。要开发MSMQ程序就必须学习一个很重要的类(MessageQueue),该类位于名称空间System.Messageing下。其中有几个常用的方法必须掌握:
  --Create():创建使用指定路径的新消息队列。
  --Delete():删除现有的消息队列。
  --Existe():查看指定消息队列是否存在。
  --GetAllMessages():得到队列中的所有消息。
  --GetPublicQueues():在“消息队列”网络中定位消息队列。
  --Peek/BeginPeek():查看某个特定队列中的消息队列,但不从该队列中移出消息。
  --Receive/BeginReceive():检索指定消息队列中最前面的消息并将其从该队列中移除。
  --Send():发送消息到指定的消息队列。
  --Purge():清空指定队列的消息。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值