在用.net进行CAD二次开发的时候,偶尔会出现致命错误,经总结,发现有两点会引起致命错误,在此记下,一来供自己参考,二来与大家分享 : )
致命错误一:
描述:声明了DBObject对象,但未将对象提交到Database中,会引起致命错误。
实例:在需要作条辅助线与图面已有多段线求交点的时候,而辅助线不需要绘制到CAD中时,记得要将辅助线Dispose,不然随着CAD的运行,会出现致命错误。
致命错误二:
描述:获取对象了ObjectId作为全局变量,在往HostApplicationServices.WorkingDatabase里打开事务Transaction对全局的ObjectId进行操作时出现致命错误。
实例:HostApplicationServices.WorkingDatabase是可以设置和变化的,并不一定是当前MdiActiveDocument的Database,比如CAD的自动保存,当打开多个文件时,文件自动保存时对每个文档进行的,这时候WorkingDatabase就进行了切换,而MdiActiveDocument还是最前面的文档。
以上是开发过程中发现的问题,欢迎补充!