为什么我不能使用DataContractSerializer序列化对象?

时间:2009-05-04 21:12:41

标签: c# .net wcf datacontractserializer

我正在尝试使用DataContractSerializer序列化一个类型,并在下面得到例外。这不适用于SOA服务,但我仍然希望尽可能使用DataContractSerializer。我使用的是.Net 3.5 SP1。

  

类型   'System.DelegateSerializationHolder + DelegateEntry'   与数据合同名称   'DelegateSerializationHolder.DelegateEntry:http://schemas.datacontract.org/2004/07/System'   不是预期的。不添加任何类型   静态地知道已知的名单   类型 - 例如,通过使用   KnownTypeAttribute属性或   将它们添加到已知类型列表中   传递给DataContractSerializer。

2 个答案:

答案 0 :(得分:4)

您可以发布课程定义吗?

看起来你正在尝试序列化一个类型为delegate的类,我非常肯定会让串行器阻塞。

您是否使用DataContract / DataMember属性装饰了您的类?在3.5 SP1中,如果没有使用这些属性标记,则默认情况下序列化程序会对类中公共的所有内容进行序列化。也许你应该明确地标记需要使用DataMember属性序列化的每个属性,并省略那些不应该属于的属性。

除此之外,我们需要查看您的课程定义以获得更多帮助。

答案 1 :(得分:1)