手写MSMQ微软消息队列收发工具类

简介: 【10月更文挑战第16天】本示例展示了如何使用C#语言编写MSMQ(微软消息队列)的收发工具类,包括发送和接收消息的方法。通过检查队列是否存在并创建、使用`MessageQueue`类发送和接收消息。示例还提供了简单的调用方式,并提醒用户注意权限管理和异常处理。

以下是用 C# 语言手写的 MSMQ(微软消息队列)收发工具类示例:


using System;
using System.Messaging;
namespace MSMQTool
{
    public class MsmqUtils
    {
        // 发送消息到指定队列
        public static void SendMessage(string queuePath, string message)
        {
            if (!MessageQueue.Exists(queuePath))
            {
                MessageQueue.Create(queuePath);
            }
            using (MessageQueue queue = new MessageQueue(queuePath))
            {
                queue.Send(message);
            }
        }
        // 从指定队列接收消息
        public static string ReceiveMessage(string queuePath)
        {
            if (!MessageQueue.Exists(queuePath))
            {
                return null;
            }
            using (MessageQueue queue = new MessageQueue(queuePath))
            {
                using (Message msg = queue.Receive())
                {
                    msg.Formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
                    return (string)msg.Body;
                }
            }
        }
    }
}


你可以使用以下方式调用这个工具类:


class Program
{
    static void Main()
    {
        string queuePath = @".\private$\MyQueue";
        MsmqUtils.SendMessage(queuePath, "Hello, MSMQ!");
        string receivedMessage = MsmqUtils.ReceiveMessage(queuePath);
        Console.WriteLine(receivedMessage);
    }
}


在使用这个工具类时,确保你有适当的权限来访问和操作消息队列。同时,注意处理可能出现的异常情况,以保证程序的稳定性。


请注意,以上代码仅为示例,实际应用中你可能需要根据具体需求进行调整和扩展。

相关文章
|
消息中间件 C#
【c#】队列(Queue)和MSMQ(消息队列)的基础使用
原文:【c#】队列(Queue)和MSMQ(消息队列)的基础使用       首先我们知道队列是先进先出的机制,所以在处理并发是个不错的选择。然后就写两个队列的简单应用。 Queue 命名空间     命名空间:System.Collections,不在这里做过多的理论解释,这个东西非常的好理解。
1501 0
|
消息中间件 Windows
|
消息中间件 数据安全/隐私保护
MSMQ(2)——.net下的消息队列管理空间
System.Messaging 名字空间下包含了用于连接到、监视和管理网络上的消息队列,并发送、接收或查看消息的类。 其中一个主要的类是MessageQueue 它提供对消息队列上的消息进行访问。
770 0
|
消息中间件 数据安全/隐私保护
MSMQ(2)——.net下的消息队列管理空间
System.Messaging 名字空间下包含了用于连接到、监视和管理网络上的消息队列,并发送、接收或查看消息的类。 其中一个主要的类是MessageQueue 它提供对消息队列上的消息进行访问。
740 0