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/

转载请注明博客园

目录
相关文章
|
消息中间件 监控
十五、.net core(.NET 6)搭建RabbitMQ消息队列生产者和消费者的简单方法
搭建RabbitMQ简单通用的直连方法 如果还没有MQ环境,可以参考上一篇的博客: https://www.cnblogs.com/weskynet/p/14877932.html
600 0
十五、.net core(.NET 6)搭建RabbitMQ消息队列生产者和消费者的简单方法
|
消息中间件 存储 网络协议
|
消息中间件 Java 测试技术
MQ消息队列.NET SDK的使用
本文主要介绍.NET SDK的使用注意事项及用户可能遇到的问题。
MQ消息队列.NET SDK的使用
|
消息中间件 C#
【c#】队列(Queue)和MSMQ(消息队列)的基础使用
原文:【c#】队列(Queue)和MSMQ(消息队列)的基础使用       首先我们知道队列是先进先出的机制,所以在处理并发是个不错的选择。然后就写两个队列的简单应用。 Queue 命名空间     命名空间:System.Collections,不在这里做过多的理论解释,这个东西非常的好理解。
1433 0
|
消息中间件 Windows

热门文章

最新文章