WCF和ObservableCollection <t> - 项目在那里,但是空?</t>

时间:2011-09-06 22:54:42

标签: c# wcf observablecollection deserialization

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

要返回的项目的类型声明未使用[DataContract][DataMember]属性进行修饰,因为它位于共享.dll中,这对于任何其他类型都不是问题直到现在这个集会。此特定类型使用[Serializable]属性进行修饰在Fiddler中捕获响应显示项目在反序列化之前仍包含数据。为什么在反序列化中会丢失项属性的值?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

只是为了踢,我用[DataContract][DataMember]属性装饰它,这就是诀窍。看起来enum没有正确地序列化/反序列化。但是,我希望我能更好地了解原因。