添加驼峰公约包后的反序列化错误
本文关键字:反序列化 错误 添加 | 更新日期: 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来解决的。