ArcEngine+C#中保存按钮的实现的问题 0x80030021

解决ArcGIS地图文档保存冲突
本文介绍了解决在使用ESRI ArcGIS进行地图文档保存过程中遇到的共享冲突错误的具体步骤。通过替换内容并利用对象复制的方法,可以有效避免保存时出现的STG_E_SHAREVIOLATION异常。

问题:

 System.Runtime.InteropServices.COMException (0x80030020): 发生共享冲突。 (异常来自 HRESULT:0x80030020 (STG_E_SHAREVIOLATION)) 
   在 ESRI.ArcGIS.Carto.MapDocumentClass.Save(Boolean bUseRelativePaths, Boolean bCreateThumnbail)
   在 gykj.jyq.projectcoordinate.project.SaveProject(Appframework m_App) 


解决方案:

mapDocument.ReplaceContents((IMxdContents)_mapControl3.Map);
//必须要以下3句,否则工作空间保存不上
IObjectCopy lip_ObjCopy = new ObjectCopyClass(); //使用Copy,避免共享引用
_mapControl3.Map = (IMap)lip_ObjCopy.Copy(mapDocument.get_Map(0));
lip_ObjCopy = null;
mapDocument.Save(mapDocument.UsesRelativePaths, false);

转载链接:http://bbs.esrichina.com.cn/esri/viewthread.php?tid=37097&extra=&page=1



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值