nie*_*eve 5 c# mongodb deserialization
我们需要将一些字符串格式的数据移动到枚举中,因为现有的数据与我们想要的enum看起来不一致,所以我使用的是自定义的Serializer(在MongoDB中).
我的代码看起来像这样:
public override MyEnum Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
{
if (context.Reader.CurrentBsonType == MongoDB.Bson.BsonType.Null) return MyEnum.Unknown;
return ParseMyEnum(context.Reader.ReadString());
}
Run Code Online (Sandbox Code Playgroud)
但是,每当我从数据库中获取包含MyEnum的类时,我都会得到上面提到的异常.
答案很简单:我们之所以得到这个异常,只是因为我们在没有实际读取值的情况下返回MyEnum.Unknown.然后修复:
if (context.Reader.CurrentBsonType == MongoDB.Bson.BsonType.Null) {
context.Reader.ReadNull();
return MyEnum.Unknown;
}
Run Code Online (Sandbox Code Playgroud)
希望这有助于某人.
| 归档时间: |
|
| 查看次数: |
1299 次 |
| 最近记录: |