我正在尝试使用AppFabric缓存一个类实例,但它返回带有空成员的类实例。 原因是DataContract属性。 我的班级标有[Serializable]和 [DataContract(Name =“TestClass”,Namespace =“CustomNameSpace.TestClass”)]属性。
如果我使用DataMember标记所有属性或删除DataContract属性,则解决问题。
但我不想删除DataContract attributte因为其他序列化需求(例如json或其他)或者我不想将DataMember属性添加到其他类。 (很多)
你有什么想法解决这个问题吗?
感谢。
答案 0 :(得分:2)
序列化引擎的规则将DataContractAttribuee序列化优先于传统的SerializableAttribute。由于您已使用DataContractAttribute标记了您的类,因此它将尝试使用DCS。在没有为属性指定任何DataMemberAttributes的情况下在您的类上使用DataContractAttribute是完全没用的,正如您所看到的,只是伤害了您,因为序列化引擎希望您遵守规则。
使这个工作的唯一选择是将相应的DataMemberAttributes应用于您的属性或删除DataContractAttribute。
答案 1 :(得分:0)
在我的课程中,我刚刚使用了类中的[Serializable]属性,成员上没有任何内容。它就像一个带有appfabric缓存的魅力。