微软 MSMQ 使用 第二章 构造MSMQ的框架类

本文介绍了一个基于MSMQ的消息队列框架实现方法,包括创建队列、发送消息等功能,并提供了获取队列列表及消息列表的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、本章主要介绍构建MSMQ的框架类,主要放在你的框架类里面,类名字命名为Messages,我的框架项目类名称是MingXu.FrameWork,我将Messages放到它下面,MingXu.FrameWork类型为Class Library

 

二、添加对System.Messaging的引用:

 MSMQ添加引用

 

MSMQ添加引用

 

 

三、代码如下:代码都有注释,所以不做过多的解释了,如果有看不明白的,请在评论里面留言,我在加注释

 

//******************************************************

//文件名:Messages.cs

//功能:MessageQueue框架类

//作者:徐明

//日期:2009-10-20

//*******************************************************

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Messaging;

using System.Net;

 

 

namespace MingXu.FrameWork

{

    public sealed class Messages

    {

        private static string _machineName = Dns.GetHostName();//获取机器名

        private static string QueuePath = ".//private$//"; //私有队列根路径

 

        /// <summary>

        /// 插入新的队列

        /// </summary>

        public static void CreateQueue(string Key)

        {

            if (!IsExit(Key))

            {

                MessageQueue mq = MessageQueue.Create(QueuePath + Key, true);

                mq.Label = QueuePath + Key;

                mq.SetPermissions("administrator", MessageQueueAccessRights.FullControl);

            }

        }

 

        /// <summary>

        /// 发送消息到WINDOWS队列

        /// </summary>

        /// <param name="QueueKey">sub path</param>

        /// <param name="Label">message name</param>

        /// <param name="Body">message content</param>

        /// <returns>bool</returns>

        public static bool Send(string QueueKey, string Label, string Body)

        {

            try

            {

                MessageQueue mq = new System.Messaging.MessageQueue(QueuePath + QueueKey);

                System.Messaging.Message msg = new System.Messaging.Message();

                msg.Formatter = new System.Messaging.ActiveXMessageFormatter();

                msg.Label = Label;

                msg.Body = Body;

                mq.Send(msg);

                return true;

            }

            catch (Exception ex)

            {

                Log.Debug(ex.Message);

                return false;

            }

        }

 

        /// <summary>

        /// 功能:获取当前机器下的所有私有的Queue名字的列表

        /// 日期:2009-10-20

        /// 作者:徐明

        /// </summary>

        /// <returns>List<string>Queue名称List</returns>

        public static List<string> GetQueueList()

        {

            if (string.IsNullOrEmpty(_machineName))

                return null;

 

            MessageQueue[] queueArray = MessageQueue.GetPrivateQueuesByMachine(_machineName);

            if (queueArray.Length == 0)

                return null;

 

            //转换MessageQueue[]类型到List<string>

            return queueArray.ToList<MessageQueue>().ConvertAll<string>(

                p =>

                {

                    return p.QueueName.Split('//')[1];

                }

                );

 

        }

 

        /// <summary>

        /// 功能:根据Queue名称获取Message的列表

        /// 日期:2009-10-20

        /// 作者:徐明

        /// </summary>

        /// <param name="queueName">Queue名称</param>

        /// <returns>List<string>Message名称List</returns>

        public static List<string> GetMessageList(string queueName)

        {

            if (string.IsNullOrEmpty(queueName))

                return null;

 

            MessageQueue mq = new MessageQueue(QueuePath + queueName);

            if (mq == null)

                return null;

 

            Message[] messageArray = mq.GetAllMessages();

            if (messageArray.Length == 0)

                return null;

 

            //转换Message[]类型到List<string>

            return messageArray.ToList<Message>().ConvertAll<string>(

                p =>

                {

                    return p.Label;

                }

            );

        }

    }

}

 

标题基于SpringBoot的蛋糕烘焙分享平台研究AI更换标题第1章引言介绍蛋糕烘焙分享平台的研究背景、意义、现状以及论文的方法和创新点。1.1研究背景与意义分析蛋糕烘焙行业的现状,阐述分享平台的重要性和意义。1.2国内外研究现状综述国内外在蛋糕烘焙分享平台方面的研究进展。1.3论文方法及创新点概述论文的研究方法,突出创新点。第2章相关理论介绍SpringBoot框架和分享平台开发的相关理论。2.1SpringBoot框架概述简述SpringBoot框架的特点、优势和应用场景。2.2分享平台技术基础阐述分享平台开发所需的技术基础,如前后端分离、数据库设计等。2.3用户行为分析理论介绍用户行为分析的基本理论和方法,为平台功能设计提供指导。第3章平台需求分析对蛋糕烘焙分享平台进行需求分析,明确平台功能和性能要求。3.1目标用户群体分析分析平台的目标用户群体,了解其需求和特点。3.2功能需求分析详细分析平台应具备的功能,如用户注册、烘焙教程发布、互动交流等。3.3性能需求分析对平台的性能要求进行分析,确保平台的稳定性和可扩展性。第4章平台设计根据需求分析结果,设计蛋糕烘焙分享平台的整体架构和详细功能。4.1平台架构设计设计平台的整体架构,包括前后端分离、数据库设计等。4.2功能模块设计详细设计平台的功能模块,如用户管理、内容管理、互动交流模块等。4.3数据库设计根据平台需求,设计合理的数据库表结构和数据字典。第5章平台实现与测试介绍平台的实现过程,包括环境搭建、编码实现和测试等环节。5.1环境搭建与配置搭建开发环境,配置必要的软件和工具。5.2编码实现按照设计要求,编写平台的前后端代码。5.3平台测试与优化对平台进行测试,发现并解决问题,优化平台性能。第6章结论与展望总结论文的研究成果,展望未来的研究方向和应用前景。6.1研究结论概括论文的主要研究内容和取得的成果。6.2未来研究
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值