未分類

C# メッセージキュー内のメッセージを取得する

準備

1. 参照設定を追加します。
– System.Messaging

デザイン

1. フォーム (Form1) にボタン (button1) を配置します。
2. フォーム (Form1) にリストボックス (listBox1) を配置します。

サンプルコード (C#)

// 名前空間の追加
using System.Messaging;
using System.Linq;

// コード
private void button1_Click(object sender, EventArgs e)
{
  MessageQueue mq = new MessageQueue(@".\private$\testqueue");
  XmlMessageFormatter msgFormatter = new XmlMessageFormatter(new string[] { "System.String, mscorlib" });
  
  var query = from System.Messaging.Message msg in mq
              where ((msg.Formatter = msgFormatter) == msgFormatter)
              select msg;
  
  foreach (var msg in query)
  {
    Console.WriteLine(msg.Body.ToString());
  }
}

解説

実行マシンのメッセージキューからメッセージを取得します。受信ではありませんので、キュー内のメッセージはそのまま残ります。

結果

動作確認環境

Visual Studio 2015 Professional (C# 6.0)

-未分類