添加驼峰公约包后的反序列化错误

本文关键字:反序列化 错误 添加 | 更新日期: 2023-09-27 18:36:55

我正在使用最新的 MongoDB C# 驱动程序。我将以下代码添加到我的程序中以在驼峰中序列化:

var camelCaseConvention = new ConventionPack { new CamelCaseElementNameConvention() };
ConventionRegistry.Register("CamelCase", camelCaseConvention, type => true);

但是,在使用序列化后尝试查询文档时遇到问题。例如:

var query = _collection.AsQueryable<TimeSeries>();
Console.WriteLine(query.ToJson());

返回以下内容:

{ "_id" : ObjectId("54af0e848c27be15fc47a0d9"), "Name" : null, "Time" : null }

即,除 id 之外的所有属性似乎都是空的。

对象已正确序列化,字段名称采用驼峰大小写("名称"和"时间"),并且每个文档都包含正确的数据("名称":测试 1"和"时间":2014)。

似乎问题是查询函数没有意识到字段在驼峰中,因此返回 null。因此,我无法反序列化任何对象。

有什么方法可以避免此错误吗?

添加驼峰公约包后的反序列化错误

我设法解决了这个问题。问题是我在创建MongoDB连接后定义了约定包。这是通过在初始化与MongoDB的连接之前注册Conventionpack来解决的。