C# MSMQ复杂对象序列化/反序列化

C# MSMQ复杂对象序列化/反序列化,c#,msmq,C#,Msmq,我正在尝试使用包含object类型属性的对象的XmlFormatter向MSMQ发送消息。如果对象属性保留为null,则序列化/反序列化将完美地工作。然而,如果我分配了一个对象,我在调用.send时会收到一个异常。生成XML文档时出错。XML文档是我收到的唯一信息。这两个类都标记为可序列化。还有什么我需要做的吗 谢谢。我怀疑您的对象没有正确地序列化为XML 例如,如果简单地将字符串值指定给对象属性,它是如何工作的 您可以使用一个小型控制台应用程序或调试器来测试类如何序列化和反序列化到xml或从x

我正在尝试使用包含object类型属性的对象的XmlFormatter向MSMQ发送消息。如果对象属性保留为null,则序列化/反序列化将完美地工作。然而,如果我分配了一个对象,我在调用.send时会收到一个异常。生成XML文档时出错。XML文档是我收到的唯一信息。这两个类都标记为可序列化。还有什么我需要做的吗


谢谢。

我怀疑您的对象没有正确地序列化为XML

例如,如果简单地将字符串值指定给对象属性,它是如何工作的


您可以使用一个小型控制台应用程序或调试器来测试类如何序列化和反序列化到xml或从xml中序列化,并检查XmlFormatter的行为。

即使您的复杂类将属性声明为类型对象,但当向其分配某个对象时,序列化会将该属性视为指定类型的对象

例如,如果为对象属性指定一个新的CustomClass值,则序列化将需要一个对象,但找到一个CustomClass,因此序列化将失败。不应为CustomClasss类型


如果将object属性的值指定为new object,我怀疑序列化将起作用。

如果队列不符合条件,我可以序列化/反序列化而不会出现任何问题。所以,我不确定出了什么问题。所有涉及的类都是可序列化的。如何验证XmlFormatter行为?我刚刚使用了一个NetDataContractSerializer实用程序类,我们必须对该类进行序列化和反序列化,以确保对象的结构正确。MessageQueue.Formatter.Write失败,并出现相同的错误。显然,这就是MessageQueue.Send在幕后执行的功能,所以这并不奇怪。