nobody 发表于 2017-10-18 03:24:24

Map .net 在导入后锁定形状文件

在按照下面的方式导入形状文件后,Map似乎保持了与该文件的连接。有人知道我怎么断开它吗
Autodesk.Gis.Map.ImportExport。导入器myimporter=null
Autodesk.Gis.Map。MapApplication:mapapp=Autodesk.Gis.Map.HostMapApplicationServices.Application
myimporter=mapapp.Importer
我的进口商。初始化(“SHP”,文件)
我的进口商。ImportPolygonsAsClosedPolylines=true;
<div>myimporter.Import(真)
**** Hidden Message *****

n.yuan 发表于 2017-10-18 10:00:51

这是自AutoCAD Map .NET API首次发布以来的已知问题,我可以想象它已在多年前报告给Autodesk,但从未得到处理。
由于手动执行“MapImport”命令不会锁定形状文件。我猜这是在AutoCAD Map .NET API中实现Autodesk.Gis.Map.ImportExport.Import类的一个缺陷,导致锁定。
因为 Importer 类是 IDisposable,我们可以在导入完成后尝试 Dispose() 它:
var mapApp = HostMapApplicationServices.Application;
         using (var importer = mapApp.Importer)
{
importer.Init(“SHP”, shpFile);
进口商。导入(真);
}
虽然,从理论上讲,我们不应该释放它,因为它是MapApplication的属性,不是由我们的代码创建的(同样,我们不知道该属性是如何实现的,该属性的“get”访问器实际上可能会创建某个类的实例,谁知道呢)。
但是,处置不会释放锁。解锁形状文件的唯一方法似乎是结束AutoCAD会话。

nobody 发表于 2017-10-18 11:51:45

真倒霉谢谢你,n.yuan

huiz 发表于 2017-10-19 03:22:52

您可以将文件复制到一个临时位置,并使用该位置代替原始位置。

nobody 发表于 2017-10-19 22:02:28

是的,这就是我最终所做的。使用日期/时间为其指定一个唯一的名称,但这只是意味着这些名称已锁定 XD。不知道如何去清理它。可能是登录期间的脚本或 idk

kdub 发表于 2017-10-19 23:16:51


如果将来有可能采取行动,您可以将此报告给AutoDesk。

nobody 发表于 2017-10-20 00:04:49

绝对的。
页: [1]
查看完整版本: Map .net 在导入后锁定形状文件