用C写入的消息队列的正文C#无法读出来 请高人解释一下

解决方案 »

  1.   

    c#似乎用的CLI内核负责解析的吧
      

  2.   

    未处理的异常: System.InvalidOperationException: 无法将作为参数传递的消息反序列
    化。无法识别序列化格式。这是用C#读消息时候出的错误
    System.Messaging.ActiveXMessageFormatter();
    用这个读的
      

  3.   

    private void DisplayMessages()
            {
                DataTable messageTable = new DataTable();
                messageTable.Columns.Add("Name");
                messageTable.Columns.Add("Message");
                messageTable.Columns.Add("Priority");
                System.Messaging.Message[] messages;
                messages = helpRequestQueue.GetAllMessages();
                System.Messaging.XmlMessageFormatter stringFormatter;
                stringFormatter = new System.Messaging.XmlMessageFormatter(
                   new string[] { "System.String" });
                for (int index = 0; index < messages.Length; index++)
                {
                    messages[index].Formatter = stringFormatter;
                    messageTable.Rows.Add(new string[] {
                         messages[index].Label,
                         messages[index].Body.ToString(),
                         messages[index].Priority.ToString() });
                }
                messageGrid.DataSource = messageTable;
            }        private void sendMessage_Click(object sender, EventArgs e)
            {
                System.Messaging.Message theMessage = new System.Messaging.Message(txtMessage.Text);
                theMessage.Label = txtName.Text;
                if (highPriority.Checked)
                    theMessage.Priority = System.Messaging.MessagePriority.Highest;
                else
                    theMessage.Priority = System.Messaging.MessagePriority.Normal;
                helpRequestQueue.Send(theMessage);
                DisplayMessages();
            }        private void refreshMessages_Click(object sender, EventArgs e)
            {
                DisplayMessages();
            }        private void purgeMessages_Click(object sender, EventArgs e)
            {
                helpRequestQueue.Purge();
                DisplayMessages();
            }