添加 Camelcase 约定包后的反序列化错误

Deserialization errors after adding Camelcase convention pack

我正在为 MongoDB 使用最新的 C# 驱动程序。我在我的程序中添加了以下代码以在 camelcase 中序列化:

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

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

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

returns 以下:

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

也就是说,除了 id 之外,所有属性似乎都是空的。

对象序列化正确,字段名称采用驼峰式("name" 和 "time")并且每个文档包含正确的数据("name":测试 1" 和 "time": 2014).

问题似乎在于查询函数没有意识到字段是驼峰式的,因此 returns 为空。因此我无法反序列化任何对象。

有什么办法可以避免这个错误吗?

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