我在WCF服务上有一个返回ObservableCollection<T>
的方法。在服务器端,在返回结果之前,我可以看到集合中填充了项目,并且项目包含预期的数据。在客户端,集合中填充的内容与服务器端的项目数相同,但每个项目中的所有属性都为null(有四个字符串和一个枚举类型)。
要返回的项目的类型声明未使用[DataContract]
和[DataMember]
属性进行修饰,因为它位于共享.dll中,这对于任何其他类型都不是问题直到现在这个集会。此特定类型使用[Serializable]
属性进行修饰在Fiddler中捕获响应显示项目在反序列化之前仍包含数据。为什么在反序列化中会丢失项属性的值?
答案 0 :(得分:0)
dll中的类型定义应标记为可序列化。
[Serializable()]
public class TestSimpleObject {...
答案 1 :(得分:0)
只是为了踢,我用[DataContract]
和[DataMember]
属性装饰它,这就是诀窍。看起来enum没有正确地序列化/反序列化。但是,我希望我能更好地了解原因。