ESB:消息队列之小试牛刀

环境要求

  • 安装MSMQ

示例代码

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 using System.Messaging;
 8 
 9 namespace MSMQStudy
10 {
11     class Program
12     {
13         static void Main(string[] args)
14         {
15             string mqName = "test";
16 
17             CreaetPrivateMessageQueue(mqName);
18 
19             SendMessage(mqName, "hello,world");
20 
21             ReceiveMessage(mqName);
22         }
23 
24         private static void CreaetPrivateMessageQueue(string mqName)
25         {
26             var path = CreateMessageQueuePath(mqName);
27 
28             if (!MessageQueue.Exists(path))
29             {
30                 MessageQueue.Create(path);
31             }
32         }
33 
34         private static string CreateMessageQueuePath(string mqName)
35         {
36             return string.Format(".\\private$\\{0}", mqName);
37         }
38 
39         private static void SendMessage(string mqName, string content)
40         {
41             var path = CreateMessageQueuePath(mqName);
42 
43             var mq = new MessageQueue(path);
44 
45             mq.Send(content);
46         }
47 
48         private static void ReceiveMessage(string mqName)
49         {
50             var path = CreateMessageQueuePath(mqName);
51 
52             var mq = new MessageQueue(path);
53 
54             mq.Formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
55 
56             for (var message = mq.Receive(); message != null; message = mq.Receive())
57             {
58                 Console.WriteLine(message.Body);
59             }
60         }
61     }
62 }

你可能感兴趣的:(消息队列)