c#BsonSerializer:通过支持字段反序列化

时间:2013-11-29 02:20:14

标签: c# .net mongodb serialization mongodb-.net-driver

我开始使用官方c#驱动程序使用MongoDB。问题是我无法找到一种方法让bsonseriazer使用字段(而不是属性)来设置反序列化数据,同时能够使用LINQ Api。

在映射我的类时,我使用BsonClassMap.FieldMap()。但这不允许使用LINQ,因为公共属性仍然未映射。 BsonSerializer中是否有一种方法可以根据属性进行映射,但同时指定这些应该通过其后备字段直接设置?

我想使用字段进行反序列化的原因是省略了可能在setter中检查的自定义验证规则。

1 个答案:

答案 0 :(得分:0)

  1. 我认为即使数据来自您自己的数据库,您也应该保留这些验证规则。它更清洁,更不容易出错并且更安全。

  2. 您可以创建自己的BsonSerializer(或扩展现有的)以您想要的方式行事。我已经完成了其中的几个,而且非常简单。

  3. 在从MongoDB驱动程序获取项目后,您可以在bool _isInitialized = false;中设置DTO,并设置为true,并放弃验证规则,直到设置为止。

  4. 我没有看到另一种方式来分离"映射到属性(对于Linq)和数据成员(对于序列化),我建议使用第一个选项。