System.Messaging.MessageQueue queue = new System.Messaging.MessageQueue(".\\Private$\\david");
System.Messaging.Message message = queue.Receive();
message.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] {typeof(string)});
DataSet TempDataSet = (DataSet)message.Body;
dataSet11.Clear();
dataSet11 = (DMSC.DataSet1)TempDataSet;
--------------------------------------------------------------------
当程序执行到DataSet TempDataSet = (DataSet)message.Body;时,报错。提示如下:其他信息: 无法将作为参数传递的消息反序列化。无法识别序列化格式那个老大帮忙看看。

解决方案 »

  1.   

    应该是MSMQ里传递的消息格式的问题.楼主全部改成xml方式传播
      

  2.   

    这句话有问题:
    MessageObject.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] {typeof(string)});改成XML传输格式.原因是DataSet在序列化成xml的时候,会对时间,字符串等等加上特殊标志字符,你如果直接用String传输,到接收端就按照string来反序列化了,自然是错的.