MSMQ(2)——.net下的消息队列管理空间

简介: System.Messaging 名字空间下包含了用于连接到、监视和管理网络上的消息队列,并发送、接收或查看消息的类。 其中一个主要的类是MessageQueue 它提供对消息队列上的消息进行访问。

System.Messaging 名字空间下包含了用于连接到、监视和管理网络上的消息队列并发送、接收或查看消息的类。

其中一个主要的类是MessageQueue

它提供对消息队列上的消息进行访问。

它有很多成员。例如

·Send方法用于向队列中写入消息。

·Receive,ReceiveById,ReceiveByCorrelationId方法用于从队列中读取消息。

·PeekReceive相似只是不更改队列内容就是在赢取消息时不会从队列中移除消息

·BeginPeek异步读取消息

还提供了其它功能

·创建和删除消息队列的队列

·通过枚举逐个访问队列中的消息

·通过枚举循环访问系统队列

·设置基于ACL访问权限

·使用连接缓存

另一个类是Message

Message类可以对消息进行详尽的控制且是队列接收或查看消息时使用的对象。除了消息正文外这个类的属性还包括确认设置格式化程序选择标识身份验证加密信息时间戳服务器日记不负死信队列的指示以及事务。

 

简单类型的发送与接收

1创建队列

private MessageQueue CreateQueue()

{

    string trPath=@".\Private$\SelfPrivateDemo";

    MessageQueue _queue;

    if (!MessageQueue.Exists(trPath))

       return MessageQueue.Create(trPath);

    _queue = new MessageQueue(trPath);

    return _queue;

}

这里创建队列对象然后可以通过队列进行发送和接收等操作。

2发送字符串

public void SendMessage(string strMsg)

{

    MessageQueue _queue = CreateQueue();

    Message _message = new Message(strMsg);

    _queue.Send(_message);   

}

3接收字符串

public string ReceiveMessage()

{

    MessageQueue _queue = CreateQueue();   

    Message _message=_queue.Receive();

_message.Formatter =

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

    return _message.Body.ToString();

}

这里解析队列消息时要用到格式化器

4测试

mm.SendMessage("Hello,");

 

这里在消息队列管理控制台中可以看到添加了队列消息可以查看一下它的内容

<?xml ver sion="1.0"?>

<string>Hello ,æ±</string>

大概是这段xml。因为传递消息用到了中文字符这里又采用了文字编码所以是乱码状态。

 

在接收时string strMsg = mm.ReceiveMessage();

会得到消息队列中的消息并按格式化器解析为正确的类型。

 

消息Message对象可以设置正文Body也可以设置和获取很多属性。

Console.WriteLine("消息标识{0}",_message.Id);      

Console.WriteLine("消息类型{0}", _message.MessageType.ToString());

 

博客园大道至简

http://www.cnblogs.com/jams742003/

转载请注明博客园

目录
相关文章
|
XML 数据可视化 程序员
(一).NET Core WebAPI集成Swagger做接口管理
什么是Swagger? Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过 Swagger 进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。与为底层编程所实现的接口类似,Swagger 消除了调用服务时可能会有的猜测。 Swagger 有什么优势? 支持 API 自动生成同步的在线文档:使用 Swagger 后可以直接通过代码生成文档,不再需
(一).NET Core WebAPI集成Swagger做接口管理
|
6月前
|
开发框架 .NET 中间件
七天.NET 8操作SQLite入门到实战 - (2)第七天Blazor班级管理页面编写和接口对接
七天.NET 8操作SQLite入门到实战 - (2)第七天Blazor班级管理页面编写和接口对接
143 7
|
1月前
|
消息中间件 C# 数据安全/隐私保护
手写MSMQ微软消息队列收发工具类
【10月更文挑战第16天】本示例展示了如何使用C#语言编写MSMQ(微软消息队列)的收发工具类,包括发送和接收消息的方法。通过检查队列是否存在并创建、使用`MessageQueue`类发送和接收消息。示例还提供了简单的调用方式,并提醒用户注意权限管理和异常处理。
|
4月前
|
人工智能 C#
Jvedio:.NET开源功能强大的本地视频管理神器
Jvedio:.NET开源功能强大的本地视频管理神器
201 0
|
5月前
|
消息中间件 存储 Java
【消息队列开发】 实现DiskDataCenter类——管理所有硬盘上的数据
【消息队列开发】 实现DiskDataCenter类——管理所有硬盘上的数据
|
5月前
|
消息中间件 存储 安全
【消息队列开发】 实现MemoryDataCenter类——管理内存数据
【消息队列开发】 实现MemoryDataCenter类——管理内存数据
|
6月前
|
数据采集 存储 监控
.NET智慧手术室管理平台源码
术前访视记录单、手术风险评估表、手术安全核查表、自费药品或耗材、麻醉知情同意书、麻醉记录单、分娩镇痛记录单、麻醉复苏单、术后镇痛记录单、术后访视记录单、压伤风险评估量表、手术清点记录单、护理记录单、输血护理记录单。
118 0
|
6月前
|
XML API 数据库
七天.NET 8操作SQLite入门到实战 - 第六天后端班级管理相关接口完善和Swagger自定义配置
七天.NET 8操作SQLite入门到实战 - 第六天后端班级管理相关接口完善和Swagger自定义配置
128 0
|
消息中间件 监控
十五、.net core(.NET 6)搭建RabbitMQ消息队列生产者和消费者的简单方法
搭建RabbitMQ简单通用的直连方法 如果还没有MQ环境,可以参考上一篇的博客: https://www.cnblogs.com/weskynet/p/14877932.html
718 0
十五、.net core(.NET 6)搭建RabbitMQ消息队列生产者和消费者的简单方法
|
SQL 开发框架 前端开发
.NET&Web前端-大三-国足信息后台管理——球员管理
.NET&Web前端-大三-国足信息后台管理——球员管理
189 0
.NET&Web前端-大三-国足信息后台管理——球员管理