添加 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 的连接来解决的。
我正在为 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 的连接来解决的。