繁体   English   中英

如果无法使用 DataContractSerializer 反序列化密钥,则跳过字典条目

[英]Skip Dictionary entry if key cannot be deserialized with DataContractSerializer

我目前正在序列化包含如下字典的 class :

    [DataMember]
    public Dictionary<SomeEnum, SomeData<long>> SomeDictionary = new Dictionary<SomeEnum, SomeData<long>>();

这很好用,但将来我可能想从枚举中删除一个值。 目前,如果我删除枚举值,我将无法再反序列化数据。 如果无法反序列化密钥,如何指示 DataContractSerializer 跳过字典条目?

.Net 类型Enum支持方法IsDefined()所以你可以这样做

enum myEnum { ev1, ev3 };
:
:    
Console.WriteLine($"{Enum.IsDefined(typeof(myEnum), "ev1")} {Enum.IsDefined(typeof(myEnum), "ev2")}");

给予

True False

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM