异常情况描述

有一个“文章”类,其中包含一个“List<段落>”类型的属性,“段落”类是抽象类,其子类有“副标题段落”、“文本段落”、“图像段落”、“附件段落”、“列表段落”等类型。

将“文章”类型的对象存入MongoDB数据库完全没问题,但是从数据库取回则会引发这样的异常:

[InvalidOperationException: 无法创建抽象类的实例。]

解决方法

之前曾就此问题向 magicDict 请教过,他给出的办法是参照这篇博文:http://www.cnblogs.com/zlp520/p/3921435.html

我没有进行实测,因为同时我找到一个貌似更简便的方法:

1.在段落类的头部标注特性:

[BsonKnownTypes(typeof(文本段落), typeof(列表段落), typeof(副标题段落), typeof(附件段落), typeof(图像段落))]

2.在实例化MongoClient之前声明:

BsonClassMap.LookupClassMap(typeof(MongoModels.段落));

如此便可完美解决此问题。

总结

除了这种包含抽象类型属性的情况,对于一个集合中默认类型为抽象类型的情况也适用此解决方法。

接口未进行测试,印象中也会报同样错误,猜想解决方法应该也是如此。

需注意的是,此方法仅适合于你可以修改源代码的情况,那篇 magicDict 推荐的文章的解决方法在不能修改源代码的情况下也可用。

MongoDB的C#官方驱动InvalidOperationException异常的解决办法相关推荐

  1. usb转串口驱动怎么安装 usb转串口驱动安装异常的解决方法

    usb转串口是我们经常需要用到的一种操作方式.在实际操作中,我们只需要用一根usb接口和串口的转接线就能完成usb设备在串口设备中的应用.但是,我们在转换中经常遇到转换之后不能读取硬件的现象,这是因为 ...

  2. Android 常见异常及解决办法

    Ø  前言 本文主要记录 Android 的常见异常及解决办法,以备以后遇到相同问题时可以快速解决. 1.   java.lang.NullPointerException: Attempt to i ...

  3. JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法

    JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法 参考文章: (1)JNI调用native方法出现 ...

  4. Delphi的“Invalid pointer operation“异常的解决办法

    Delphi的"Invalid pointer operation"异常的解决办法 参考文章: (1)Delphi的"Invalid pointer operation& ...

  5. pemicro识别不了驱动_usb驱动无法识别怎么办-usb驱动无法识别通常解决办法 - 河东软件园...

    在我们使用电脑的过程中,我们常常需要插入USB设备来存储/传输文件或者进行其他的操作,而部分用户在插入USB设备后发现,可能会出现USB驱动无法识别的问题,我们的USB设备不能正常使用,部分用户可能认 ...

  6. 阿里云服务器安全组配置-有关访问实例异常的解决办法

    阿里云服务器安全组配置-有关访问实例异常的解决办法 参考文章: (1)阿里云服务器安全组配置-有关访问实例异常的解决办法 (2)https://www.cnblogs.com/ylcxBlog/p/7 ...

  7. Android Stduio 发生 Process ‘command ‘somePath:java.exe‘‘ finished with non-zero exit value 2 异常的解决办法

    Android Stduio 发生 Process 'command 'somePath:java.exe'' finished with non-zero exit value 2 异常的解决办法 ...

  8. nested exception is java.lang.NoClassDefFoundError: org/codehaus/jettison/json/JSONObject异常的解决办法

    nested exception is java.lang.NoClassDefFoundError: org/codehaus/jettison/json/JSONObject异常的解决办法 参考文 ...

  9. IIS 常见异常及解决办法

    Ø  简介 IIS 是我们平常接触比较多的服务端软件,用于站点发布等,本文主要记录 IIS 常见的异常及解决办法.主要包括: 1.   Visual Studio 启动 Web 项目提示"无 ...

最新文章

  1. Android小项目之--前台界面与用户交互的对接 进度条与拖动条(附源码)
  2. 找回丢失的mysql root 用户密码
  3. 操作系统实验报告6:进程间通信—共享内存
  4. Java IO: PipedOutputStream
  5. AntDesign Form表单字段校验的三种方式
  6. 运维人,你应该了解的三张武功心法图(转载)
  7. dbgrideh标题排序
  8. 基于JS实现新闻列表无缝向上滚动实例代码
  9. AlertDialog Unable to add window token null is
  10. 将勾选数据从dataset中筛选出来
  11. react-router的BrowserHistory 和 HashHistory 的区别,如何解决使用BrowserHistory 引起的访问路径问题
  12. 20春计算机应用基础在线作业,19春学期《计算机应用基础》在线作业21.txt
  13. unity调用php,unity访问php
  14. RubyonRails on linux配置
  15. 雷达的工作原理示意图_5张图1个视频,科普激光雷达工作原理
  16. AppCan TreeView
  17. redis的zset为什么用调表不用红黑树
  18. navicat创建用户并赋予权限
  19. 835616-60-9,4-Fluoro-thalidomide用于补充CRBN蛋白的沙利度胺基脑啡肽配体
  20. mybatisplus sql 改写2

热门文章

  1. Michael S. Hart去世了
  2. PowerDesigner经验,sql文件生成pdm文件,并生成中文comment描述
  3. python:使用条件语句实现剪子包袱锤
  4. 计算机控制系统编程语言,PLC的五种主要编程语言是什么?
  5. Android 11整合Mopria联盟的代码贡献以实现增强的打印功能
  6. dede织梦模板目录大全,绝对有帮助
  7. MATLAB | 入门——学习笔记
  8. FTP服务器文件自动上传、下载(bat)
  9. Tableau--使用参数为报表增加一个统计周期筛选条件(日,周,月,季度,年)
  10. 安装软件时出现不能打开要写入的文件怎么解决?