C# WCF和ObservableCollection-项目存在,但为空?

C# WCF和ObservableCollection-项目存在,但为空?,c#,wcf,observablecollection,deserialization,C#,Wcf,Observablecollection,Deserialization,我在WCF服务上有一个方法,它返回一个ObservableCollection。在服务器端,在返回结果之前,我可以看到集合中填充了项,并且项包含预期的数据。在客户端,使用与服务器端相同数量的项填充集合,但每个项中的所有属性都为null—有四个字符串和一个枚举类型 正在返回的项的类型声明没有使用[DataContract]和[DataMember]属性修饰,因为它驻留在共享的.dll中,并且直到现在,此程序集中的任何其他类型都没有问题。此特定类型由[Serializable]属性修饰,该属性捕获F

我在WCF服务上有一个方法,它返回一个ObservableCollection。在服务器端,在返回结果之前,我可以看到集合中填充了项,并且项包含预期的数据。在客户端,使用与服务器端相同数量的项填充集合,但每个项中的所有属性都为null—有四个字符串和一个枚举类型


正在返回的项的类型声明没有使用[DataContract]和[DataMember]属性修饰,因为它驻留在共享的.dll中,并且直到现在,此程序集中的任何其他类型都没有问题。此特定类型由[Serializable]属性修饰,该属性捕获Fiddler中的响应,表明这些项在反序列化之前仍然包含数据。为什么在反序列化过程中项目属性的值会丢失?

dll中的类型定义应标记为可序列化

[Serializable()]        
public class TestSimpleObject  {...

只是为了好玩,我用[DataContract]和[DataMember]属性装饰了它,这就成功了。枚举似乎没有正确序列化/反序列化。希望我能更好地了解原因。

该类型也被标记为可序列化,很抱歉我在问题中忽略了这一点。非常棒的系统跟踪查看器支持System.Runtime.Serialization命名空间,我发现有时挖掘诊断跟踪以发现此类问题很有用。有关要添加到配置中的相关位,请参阅。文件-也许值得一试?我以前使用过跟踪来找到WCF问题的根源,我应该想到这一点。我将试一试,看看它是否能让我有所收获。我只发现System.Runtime.Serialization可以将输出发送到跟踪查看器日志,这在上周帮我节省了几个小时!是的,想想看,我很确定我只在System.ServiceModel上使用过它,而没有在System.Runtime.Serialization上使用过它……谢谢你的提示!