3

我目前正在使用 C# 中的 MSMQ 开发批处理应用程序。在应用程序设计中,我有一个错误队列,其中包含使用ActiveXFormatter. 我知道我可以编写一个应用程序来将这些错误消息写入文本文件或数据库表。

是否有其他可用的预构建工具允许您将消息导出为各种格式(即文本文件、数据库表等)?我只是在寻找最佳实践。

4

1 回答 1

4

行。我发现编写代码的解决方案非常简单。这是我的参考解决方案。

使用系统;
使用 System.Collections.Generic;
使用 System.ComponentModel;
使用 System.Data;
使用 System.Drawing;
使用 System.Linq;
使用 System.Text;
使用 System.Windows.Forms;
使用 System.Messaging;

命名空间导出MSMQMessagesToFiles
{
    公共部分类 frmMain :表格
    {
        公共 frmMain()
        {
            初始化组件();
        }

        私人无效btnExportTextFiles_Click(对象发送者,EventArgs e)
        {           
            //使用来自用户的路径设置 MSMQ...
            MessageQueue q = new MessageQueue(txtMSMQ.Text);

            //设置格式化程序...随便你!?
            q.Formatter = new ActiveXMessageFormatter();

            // 循环所有消息并将它们写入文件...(在本例中为 XML)
            MessageEnumerator msgEnum = q.GetMessageEnumerator2();
            诠释 k = 0;
            而 (msgEnum.MoveNext())
            {
                System.Messaging.Message msg = msgEnum.Current;                                
                字符串文件名 = this.txtFileLocation.Text + "\\" + k + ".xml";                
                System.IO.File.WriteAllText(fileName, msg.Body.ToString());
                k++;
            }

            MessageBox.Show("全部完成!");
        }
    }
}

于 2009-05-06T16:18:39.843 回答