0

我有一个标记为CollectionDataContract具有枚举成员的类。当我在 Appfabric 中放置此类的对象时,我就完成了。当我从 App 结构中取回它时,它不会反序列化枚举成员。但我不确定序列化部分本身是否遗漏了枚举。

请帮忙。

如果您需要更多信息,请告诉我。

谢谢。

[CollectionDataContract]
public partial class RuleConditionList : List<IRuleCondition>, IRuleCondition
{
   public LogicalOperator Operator;
}

LogicalOperator枚举在哪里

4

2 回答 2

0

我认为序列化/反序列化对象时存在问题。AppFabric 在将项目存储在缓存中之前使用 NetDataContractSerializer 类进行序列化。

您可以在使用 DataContractAttribute 或 SerializableAttribute 标记的任何类型或实现 ISerializable 接口的类型上使用 NetDataContractSerializer。

因此,取决于您的对象,应该有一些错误,例如私有类型、私有字段、缺少的属性,......

编辑

你应该添加DataMember到你的领域。

[DataMember]
public LogicalOperator Operator; 
于 2012-12-21T20:00:14.010 回答
0

标有 Collection 数据协定的类中的任何数据成员都不能被 NetdataContractSerializer 序列化,NetdataContractSerializer 是 App Fabric 用于存储数据的序列化技术。

为了使事情顺利进行,我们有两个选择:

  1. 为 RuleConditionList 做一个包装器
  2. 与其从 List 继承,不如将其作为属性并将属性更改为 DataContract。
于 2013-01-07T08:13:40.127 回答