【问题标题】:c# BsonSerializer: deserialization through backing fieldsc# BsonSerializer:通过支持字段反序列化
【发布时间】:2013-11-29 02:20:14
【问题描述】:

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

映射我的班级时,我使用 BsonClassMap.FieldMap()。但这不允许使用 LINQ,因为公共属性仍未映射。 BsonSerializer 中有没有一种方法可以根据属性进行映射,但同时指定这些应该直接通过它们的支持字段进行设置?

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

【问题讨论】:

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


    【解决方案1】:
    1. 我认为即使数据来自您自己的数据库,您也应该保留这些验证规则。它更干净、更不容易出错并且更安全。

    2. 您可以创建自己的BsonSerializers(或扩展现有的),以您想要的方式进行操作。我已经做了好几个,真的很简单。

    3. 您可以在您的 DTOs 中设置一个 bool _isInitialized = false;,在您从 MongoDB 驱动程序获取项目后立即将其设置为 true,并在设置之前放弃验证规则。

    我没有看到另一种将映射“拆分”到属性(用于Linq)和数据成员(用于序列化)的方法,我推荐第一个选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-11
      • 2014-01-23
      • 2014-11-07
      • 2015-06-16
      • 1970-01-01
      相关资源
      最近更新 更多