C# 4.0 App Fabric:While GET未命中枚举属性

C# 4.0 App Fabric:While GET未命中枚举属性,c#-4.0,appfabric,appfabric-cache,C# 4.0,Appfabric,Appfabric Cache,我有一个标记为CollectionDataContract的类,它有一个枚举成员。当我在Appfabric中放置此类的对象时,我就完成了。当我从AppFabric获取它时,它不会反序列化枚举成员。但我不确定在序列化部分本身是否遗漏了枚举 请帮忙 如果你需要更多的信息,请告诉我 谢谢 [CollectionDataContract] public partial class RuleConditionList : List<IRuleCondition>, IRuleCondition

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

请帮忙

如果你需要更多的信息,请告诉我

谢谢

[CollectionDataContract]
public partial class RuleConditionList : List<IRuleCondition>, IRuleCondition
{
   public LogicalOperator Operator;
}
[CollectionDataContract]
公共部分类RuleCondition列表:列表,IRuleCondition
{
公共逻辑运算符;
}

其中,
LogicalOperator
是枚举

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

您可以在标有数据追踪属性或系列属性的任何类型上,或在实现可编辑接口的任何类型上使用网络数据追踪器

因此,根据您的对象和属性,应该有一些错误,比如私有类型、私有字段、缺少的attibute等等

编辑

您应该向字段中添加
DataMember

[DataMember]
public LogicalOperator Operator; 

NetdataContractSerializer无法序列化标记为Collection data contract的类中的任何数据成员,NetdataContractSerializer是App fabric用于存储数据的序列化技术

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

  • 为RuleConditionList创建包装器
  • 不要从列表继承,而是将其作为属性,并将属性更改为DataContract

  • 我发现了真正的问题。它与枚举无关。我已使用产生问题的收集数据协定标记了该类。标记为类的收集数据协定中的任何枚举都不会正确序列化。但是我正在处理这个问题。你能给我看一下确切的代码吗?因为在您的问题中,字段没有标记该属性。